반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 입문
- 10807
- C 언어
- 설명
- VS
- 정리
- C Programming
- Baekjoon
- Python
- CSS
- c언어
- Beakjoon
- 파이썬
- greedy
- 구현
- 문자열
- HTML
- 그리디
- 문제풀이
- 친절한 설명
- 꾸준히
- 심화1
- 백준
- 초보
- 10926
- Implemention
- implement
- C
- 알고리즘
- 코드엔진
Archives
- Today
- Total
안경잡이 구루루
백준 4673 ( 셀프넘버 ) [ Python ] 본문
반응형
나:
def new_num():
All =[]
n=0
for i in range(1,10001):
All.append(i)
for k in range(10000):
n += 1
new=0
new = new+ int(n)
for i in range(len(str(n))):
new += int(str(n)[i])
if new in All:
All.remove(new)
for i in All:
print(i)
new_num()
완성된 코드는 위와 같다.
def new_num():
All =[]
self=[]
n=0
for i in range(1,10001):
All.append(i)
위는 셀프넘인지 판단하기 이전에 설정하는 기본 설정부분이다.
새로운 수를 생성하는 new_num이라는 함수를 만든다.
1만까지 들어갈 리스트 all 을 위한 빈 리스트르 만들고1씩 증가할 n을 0으로 초기화.
for 반복문을 통해 1만까지 All 리스트에 1만까지 숫자 채워넣는다. 왜냐하면 문제에서 1만보다 작은 셀프 넘버를 구해야하기 때문이다.
for k in range(10000):
n += 1
new=0
new = new+ int(n)
for i in range(len(str(n))):
new += int(str(n)[i])
if new in All:
All.remove(new)
All에서 생성자를 없에 셀프넘버만 남기는 for 반복문 부분이다.
n은 1씩 증가하며 생성자인지 아닌지 판단된다. new는 피생성자로 0으로 초기화 한다. 이때 피생성자는 문제에서 알 수 있듯이 자기자신 n을 더해야 하기 때문에 초기값을 n을 더한 값으로 설정
n의 각 자리수를 new에 더해야 하기 때문에 len(str(n))을 이용해 길이를 구한후 각 자리수를 for 반복문을 통해 더한다
이때 생성자가 있는 것들은 All에서 지우고 결국에 All 리스트에는 셀프넘버만 남게 된다.
for i in All:
print(i)
new_num()
셀프넘버만 남은 All을 한줄에 하나씩 출력한다.
입력값이 없으니 위 함수를 바로 실행하기 위해 함수이름에 인자값 없이 new_num()만 씀.
다른사람:
natural_number_set = set(range(1, 10001))
generated_number_set= set()
for i in range(1, 10001):
for j in str(i):
i += int(j)
generated_number_set.add(i)
self_number_set = natural_number_set - generated_number_set
for i in sorted(self_number_set):
print(i)
완성된 코드는 위와 같다.
위 코드의 자세한 설명은 직접 링크를 타고 가서 보는게 더 좋은거 같다.
반응형
'파이썬(Python) > 문제풀이(백준,BaekJoon)' 카테고리의 다른 글
백준 11720 ( 숫자의 합 ) [ Python ] (2) | 2020.06.30 |
---|---|
백준 11654 ( 아스키 코드 ) [ Python ] (0) | 2020.06.30 |
백준 15596 ( 정수 N개의 합 ) [ Python ] (0) | 2020.06.27 |
백준 4344 ( 평균은 넘겠지 ) [ Python ] (0) | 2020.06.25 |
백준 8958 ( OX 퀴즈 ) [ Python ] (0) | 2020.06.25 |