반응형
https://www.acmicpc.net/problem/4673
풀이 1.
num_list = list(range(10001))
for n in range(10001):
num = n \
+ n // 10000 \
+ (n % 10000) // 1000 \
+ ((n % 10000) % 1000) // 100 \
+ (((n % 10000) % 1000) % 100) // 10 \
+ (((n % 10000) % 1000) % 100) % 10
if num in num_list:
num_list.remove(num)
for i in range(len(num_list)):
print(num_list[i])
0부터 10000까지 들어 있는 num_list 리스트를 만든 뒤
10000까지 for 문을 돌며
(n + 각자리 수) 의 결과를 num에 저장
num_list에서 num을 제거
각 자리수의 합을 구하는 부분을 간단하게 변경할 수 있다.
#num = n의 각 자리수를 더한 값
for i in range(1, 6):
num += (n % (10 ** i)) // 10 ** (i - 1)
풀이 2.
num_list = list(range(10001))
for i in range(10001):
result = i
for j in str(i):
result += int(j)
if result in num_list:
num_list.remove(result)
for i in range(len(num_list)):
print(num_list[i])
10000까지 for 문을 돌며 str형으로 변경한 뒤
각 자리수를 더하기 위해 int 형으로 변경 -> 각 자리수를 더할 수 있다.
그 후 1 부터 10000까지 만들어 놓았던 리스트에서 result를 제거
반응형
'algorithm > Baekjoon' 카테고리의 다른 글
[python] 백준 11654_아스키코드 (0) | 2021.07.27 |
---|---|
[c언어] 백준 1065_한수 (0) | 2021.07.24 |
[python] 백준 15596_정수 N개의 합 (0) | 2021.06.25 |
[python] 백준 4344_평균은 넘겠지 (0) | 2021.06.24 |
[python] 백준 8958_OX퀴즈 (0) | 2021.06.24 |