def solve(): number = list(range(1,10001)) list_a = [] for num in number: 1~10000에 대해 하나씩 빼서(num) for n in str(num): num을 문자로 바꿀걸 한 character씩(n) num += int(n) n은 character이니 int로 바꾸고, 문제에서 제시된 방법으로 숫자를 만듬 if num <= 10000: 어차피 10000까지만 출력하면 되므로 10000 초과면 필요없음 list_a.append(num) 현재 num이란건 1~10000까지의 어떤 숫자를 생성자로 가지는 수가 됨. 이걸 list_a 라는거에다가 넣음 for a in set(list_a): number(현재 1~10000)중에list_a에 들어있던걸 제외함 number.remove(a) for i in number: 그럼 number에 남은건 1~10000을 생성자로 가지지 않는 숫자들임. -> 근데 어차피 n으로 만드어지는 수는 n보다 항상 커지므로 1~10000까지 전부 확인 가능함. print(i) solve()
toyboy0113 2년 전
저는 다른 방식으로 풀었는데 다른분들 코드 보니까 밑에 처럼 코드를 짜신분도 계시더라구요
그런데 도무지 여기쪽 코드 흐름이 감이 안잡히네요..
for num in number:
for n in str(num):
num += int(n)
if num <= 10000:
list_a.append(num)
흐름좀 알려주시면 감사하겠습니다.