반응형
https://www.acmicpc.net/problem/4673
셀프 넘버 문제
n과 n의 각 자리 수를 더하는 함수 d(n)에 대해 10000보다 작은 셀프 넘버들을 출력해보는 문제
구현 문제라 요구사항 대로 풀어주면 어렵지 않게 풀 수 있다.
⚙️ 내가 푼 정답코드
def self_num(n): # 생성자 만들기
x = list(str(n))
result = 0
for i in range(len(x)):
result += int(x[i])
result = result + n
return result
results = set() # 중복제거를 위해 set함수 사용
for i in range(10000):
results.add(self_num(i))
for m in range(1,10001):
if m not in results: # 생성자 안에 없다면 셀프넘버
print(m)
📌 문제 접근 포인트
1. 셀프 넘버를 찾아주기 위한 생성자를 먼저 만들어 주자.
2. 요구 조건 대로 각 자리를 더해주고, 그 숫자를 더해줄 수 있는 함수를 만들어 주고, 10000까지 생성자를 찾아주자.
3. 생성자를 찾았으면 10000이하의 숫자 중에 생성자에 없는 숫자들을 출력해주면 그것이 셀프 넘버이다.
반응형
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 15965] K번째 소수 (python) (0) | 2023.04.08 |
---|---|
[백준 9735] 삼차 방정식 풀기 (python) (0) | 2023.04.08 |
[백준 11440] 피보나치 수의 제곱의 합 (python) (0) | 2023.04.07 |
[백준 13977] 이항 계수와 쿼리 (python) (0) | 2023.04.07 |
[백준 13949] 쉬운 문제 (python) (0) | 2023.04.07 |
댓글