코딩테스트/백준
백준[2231] - 분해합
문제
작성한 코드
N = int(input())
result = 0
for i in range(1, N+1):
M = list(map(int, str(i)))
K = i + sum(M)
if K == N:
result = i
break
print(result)
(문제 이해가 잘 되지 않아서 문제푸는 방법을 바로 생각해내지 못했다.)
- 숫자 N을 입력받는다.
- 결과값을 저장할 result를 0으로 초기화시켜준다.
- 1부터 N까지(range(1, N+1)) for문을 돌리면서 비교한다.
- 숫자는 인덱스로 접근할 수 없기 때문에, i를 str로 형변환해서 각 자리값을 int로 형변환하여 리스트 M을 만들어준다.
- sum()으로 리스트 M의 합을 구하고, 거기에 i를 더해서 분해합 K를 구한다.
- 만약 K가 N과 같다면, K는 N의 생성자란 소리이기 때문에 해당 i의 값을 result에 저장해주고 for문을 break로 빠져나온다.
- 최종적으로 result의 값을 print()로 출력해준다.
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
백준[1436] - 영화감독 숌 (0) | 2023.02.14 |
---|---|
백준[7568] - 덩치 (0) | 2023.02.13 |
백준[2798] - 블랙잭 (0) | 2023.02.11 |
백준 [13305] - 주유소 (0) | 2023.02.10 |
백준 [1541] - 잃어버린 괄호 (0) | 2023.02.07 |
댓글