백준 9506번: 약수들의 합💦

2023. 7. 17. 12:25·백준

내 풀이

Num = int(input())
Num_y = []

for i in range(Num):
    if Num % i == 0:
        Num_y.append(i)

if sum(Num_y) == Num:
    print(Num, "= 1")
    for i in range(1, len(Num_y)):
        print("+", Num_y[i])
else:
    print(Num, "is NOT perfect.")

 


정석 풀이

while True:

    Num = int(input())
    total = 0
    Num_y = []

    if Num == -1:    #ZeroDivisionError: integer division or modulo by zero 오류 방지
        break

    for i in range(1, Num//2+1):    #자신 제외하면 n의 절반까지가 모든 약수를 구하므로!
        if Num % i == 0:
            Num_y.append(i)
            total += i

    if total == Num:
        cor = " + ".join(str(i)for i in Num_y)  # + 를 사이사이에 넣으면서 Num_y의 모든 요소들을 문자열로 바꿔서 합침
        print(Num, "=", cor)
    else:
        print(Num, "is NOT perfect.")

 

- append([i])가 아니라 append(i)

- sum 쓰지 않고 새롭게 변수 설정

- -1일 때 멈추게 설정

- 프린트시 join 사용

- 효율적인 코드를 위해 Num의 반만 돌리기

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 10818번: 최소, 최대💦  (0) 2023.07.18
백준 8958번: OX퀴즈💦  (0) 2023.07.18
백준 2480번: 주사위 세개💦  (0) 2023.07.14
백준 2525번: 오븐시계💦  (0) 2023.07.14
백준 2884번: 알람 시계  (0) 2023.07.14
'백준' 카테고리의 다른 글
  • 백준 10818번: 최소, 최대💦
  • 백준 8958번: OX퀴즈💦
  • 백준 2480번: 주사위 세개💦
  • 백준 2525번: 오븐시계💦
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (382)
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅 (5)
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    코딩테스트준비
    개발자취업
    Til
    항해99
    99클럽
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 9506번: 약수들의 합💦
상단으로

티스토리툴바