백준

백준 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 연산자로 배열을 불러오면, [,], ', ' 까지 다 표기된다.