100세까지 코딩
[백준] 2231번 분해합 (파이썬) 본문
문제
나의 생각
- 0부터 N까지 j를 증가시키면서 반복한다.
- j를 문자열로 바꾼 뒤, 각 문자를 int로 치환해 주면서 순회한다.
- 각 문자를 더한 값과 j값을 더해 어떤 자연수 N값과 같아지면 list에 추가한다.
- list가 비었으면 0 출력, 있으면 min() 함수를 사용하여 최솟값을 출력한다.
나의 풀이
N = int(input())
cons_list = list()
for j in range(0, N):
sum_as = 0
for i in str(j):
sum_as += int(i)
if sum_as + j == N:
cons_list.append(j)
if len(cons_list) == 0:
print(0)
else:
print(min(cons_list))
참고
1. list() : list를 생성
2. str() : 매개변수를 문자열로 치환
3. int() : 매개변수를 숫자로 치환
4. len() : 길이 반환
5. list.append(e) : list 가장 뒤에 값 추가
6. min() : 최솟값 반환
'코딩테스트 > 파이썬' 카테고리의 다른 글
[백준] 1018번 체스판 다시 칠하기 (파이썬) (0) | 2024.01.19 |
---|---|
[백준] 19532번 수학은 비대면강의입니다 (파이썬) (0) | 2024.01.19 |
[백준] 2869번 달팽이는 올라가고 싶다(파이썬) (0) | 2024.01.16 |
[백준] 11005번 진법 변환2 (파이썬) (0) | 2024.01.15 |
[백준] 2563번 색종이 (파이썬) (0) | 2024.01.14 |