백준
백준 9506 문제풀이 [python]
ys.k
2023. 7. 16. 17:03
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
문제를 보자.
사실 이 문제의 논리는 어렵지 않았다.
하지만 요구하는 문자열 형식을 출력하는 데에 있어 조금 애먹었다.
하지만 파이썬을 접하며 여러가지 방법들을 익혔고, 조합해 보니 성공했다.
코드
array=[1]
while True:
try:
a= int(input())
if a < 0 :
break
array= [1]
print(a,end ='')
for i in range(2,a//2 + 1):
if a % i == 0:
array.append(i)
if sum(array) == a:
print(' =',' + '.join(str(j) for j in array))
else:
print(' is NOT perfect.')
except:
break
print(' =',' + '.join(str(j) for j in array))
이 부분이 사실상 이 문제를 푸는 데 있어 가장 중요한 부분이 아닐까 싶다.
배운 점
1. join 연산자는 int형을 받지 않고 str형만 입력가능하다.
2. join 연산자로 배열을 불러오면, [,], ', ' 까지 다 표기된다.