문제
https://www.acmicpc.net/problem/4673
문제는 위 사이트에서 확인해주세요.
풀이
def main():
num = 1 # 시작 값을 1로 설정해줍니다.
totalList = set() # 수를 더했을 때, 중복을 피하기 위해 집합으로 만들어 줍니다.
while num <= 10000: # 10000 이하의 수까지 출력하기 때문에 조건을 <= 10000 이렇게 걸어둡니다
total = 0 # total 값 0으로 초기화
length = len(str(num)) # num이 int형이기 때문에 str형으로 바꾸고 길이를 구합니다.
i = str(num) # str형 num을 저장
for n in range(length): # num의 자리 개수만큼 루프를 돌려줍니다.
total += int(i[n:n+1]) # 먼저 total에 각 자리수를 더해줍니다.
total += num # for 문이 끝나면 자리수가 더해진 total에 num을 더해줍니다.
totalList.add(total) # total 값을 집합에 넣어줍니다.
if num not in totalList: # num이 집합 안에 없으면 num을 찍어줍니다.
print(num)
num += 1 # num의 값을 1올려주고 다시 while 문을 돌립니다.
main() # main함수 출력
주석을 확인해주세요.
결과
'IT > 알고리즘' 카테고리의 다른 글
1일 1알고리즘 - #8 (0) | 2020.05.15 |
---|---|
1일 1알고리즘 - #7 (0) | 2020.05.15 |
1일 1알고리즘 - #5 (0) | 2020.05.14 |
1일 1알고리즘 - #4 (0) | 2020.05.14 |
1일 1알고리즘 - #3 (0) | 2020.05.13 |
댓글