관리 메뉴

100세까지 코딩

[백준] 2231번 분해합 (파이썬) 본문

코딩테스트/파이썬

[백준] 2231번 분해합 (파이썬)

100세까지 코딩 2024. 1. 19. 15:23
문제

나의 생각
  • 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() : 최솟값 반환