반응형
문제
https://www.acmicpc.net/problem/4673
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
풀이
- 1부터 10000까지 셀프 넘버가 아닌 숫자를 구해준다. (생성자가 있는 숫자)
- (각 자리수 + 자기 자신의 수) 연산을 해서 나온 수는 생성자가 있는 숫자일 것
- 생성자가 있는 숫자를 집합에 넣어준다.
- Array에 넣어줘도 상관없지만, 생성자가 2개 이상인 경우 중복이 되므로 Set을 생각했음
- 1 ~ 10,000까지 집합에 있는지 확인하고 집합에 없다면 출력
- 집합에 없다면 셀프 넘버
소스코드
후기
- 1 ~ 10000까지의 수를 가지고 만들 수 있는 수를 찾는게 가장 쉬운 방법이라고 생각함
- 셀프 넘버가 될 수 없는 숫자들을 구해야 하는게 핵심인 것 같다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 11654 아스키 코드 (Swift) (0) | 2022.12.30 |
---|---|
[BOJ] 백준 1065 한수 (Swift) (0) | 2022.12.30 |
[BOJ] 백준 4344 평균은 넘겠지 (Swift) (0) | 2022.12.28 |
[BOJ] 백준 8958 OX퀴즈 (Swift) (1) | 2022.12.28 |
[BOJ] 백준 1546 평균 (Swift) (0) | 2022.12.27 |