백준 9506 파이썬 , join 메서드, sep=""

2024. 3. 8. 08:24코딩/백준 (단계별)

반응형

백준 9506 : 약수들의 합

문제

https://www.acmicpc.net/problem/9506

 

9506번: 약수들의 합

어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.

www.acmicpc.net

 

9506번

답안 코드 :

while True:
    n = int(input())
    
    # 입력값이 -1이면 반복문 종료
    if n == -1:  
        break
    
    # 약수를 저장할 리스트 초기화
    arr = []
    
    # 1부터 n-1까지의 수에 대해 반복
    for i in range(1, n):
        # 현재 수 i가 n의 약수이면 리스트에 추가
        if n % i == 0:
            arr.append(i)
    
    # 약수의 합이 입력값과 같으면 완전수 출력
    if sum(arr) == n:
        print(n, " = ", " + ".join(str(i) for i in arr), sep="")
    else:
        # 약수의 합이 입력값과 다르면 완전수가 아님을 출력
        print(n, "is NOT perfect.")

 

 

백준 / 문제 / 단계별로 풀어보기 / 9단계 약수, 배수와 소수

 

생각 :

# join은 문자열을 결합하는 메서드로, 
# 리스트에 있는 각 요소들을 
# 지정된 구분자(" + " 여기서는 덧셈 기호와 공백)로 연결하여 하나의 문자열로 만든다.

# print(n, " = ", " + ".join(str(i) for i in arr), sep="")에서 
# sep=""를 사용하여 공백 대신 빈 문자열을 구분자로 사용하도록 지정했습니다. 
# 따라서 출력 결과에서 n, "=", 그리고 약수들이 모두 붙어서 나타납니다.

반응형

'코딩 > 백준 (단계별)' 카테고리의 다른 글

백준 2581 파이썬  (12) 2024.03.11
백준 1978 파이썬  (8) 2024.03.10
백준 2501번 파이썬  (13) 2024.03.06
백준 5086 파이썬  (12) 2024.03.05
백준 2869 파이썬 , ceil 함수 floor 함수  (37) 2024.02.16