-
[Bronze1] 백준 9506 파이썬 : 약수들의 합백준/python 2023. 6. 1. 18:10
백준 9506번 파이썬 문제풀이
아이디어
약수들을 담을 빈 리스트를 만들고
반복문을 통해 리스트에 약수를 담은다음, 약수들의 합이 n과 같은지 확인한다.
문제풀이
while True: n = int(input()) if n == -1: break divisor = [] for i in range(1, n): if n % i == 0: divisor.append(i) if sum(divisor) == n: print(n, "=", end=" ") print(*divisor, sep=" + ") else: print(f'{n} is NOT perfect.')
-1이 입력될때 까지 계속 입력이 들어오므로 while True 문을 활용 (-1이 입력될때까지 반복, -1이 들어오면 종료)
if n == -1:,
break
빈 리스트를 만들고 반복문을 통해 약수라면 리스트에 추가
각각의 약수들을 출력할 수 있는지가 문제의 핵심 풀이 요소
*(Asterisk)를 파이썬 리스트에 사용하면 리스트의 값만 출력할 수 있고, 공백 대신 '+' 를 사용
소스코드
while True: n = int(input()) if n == -1: break divisor = [] for i in range(1, n): if n % i == 0: divisor.append(i) if sum(divisor) == n: print(n, "=", end=" ") print(*divisor, sep=" + ") else: print(f'{n} is NOT perfect.')
+참고자료+
파이썬 *(Asterisk) 사용법에 대한 칼럼
Asterisks in Python: what they are and how to use them
There are a lot of places you’ll see * and ** used in Python. These two operators can be a bit mysterious at times, both for brand new programmers and for folks moving from many other programming languages which may not have completely equivalent operato
treyhunner.com
'백준 > python' 카테고리의 다른 글
[Bronze2] 백준 2581 파이썬 : 소수 (0) 2023.06.05 [Bronze2] 백준 1978 파이썬 : 소수 찾기 (0) 2023.06.05 [Bronze3] 백준 2501 파이썬 : 약수 구하기 (0) 2023.06.01 [Bronze1] 백준 2869 파이썬 : 달팽이는 올라가고 싶다 (0) 2023.05.01 [Silver5] 백준 1193 파이썬 : 분수찾기 (0) 2023.02.09