-
<백준> 4673번: 셀프 넘버유물/└ 백준 2022. 1. 11. 21:18728x90
🤖
문제
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
풀이
const N = 10000; function d(num) { const numArr = num.toString().split(""); return num + +numArr.reduce((pre, cur) => +pre + +cur); } let numGenArr = []; for (let i = 1; i < N; i++) { numGenArr.push(d(i)); } let arr = []; for (let i = 1; i <= N; i++) { arr.push(i); } let selfNumArr = arr.filter((selfNum) => !numGenArr.includes(selfNum)); selfNumArr.forEach((val) => console.log(val));
1. (line 1) 문제에서 제시된 정수 값(10,000)을 활용하기 위해 변수를 초기화하였습니다.
2. (line 3~6) 문제에서 주어진 d(n) 함수를 정의하였습니다.
3. (line 8~11) numGenArr에 셀프 넘버가 아닌 숫자들을 담았습니다.
4. (line 13~16) 1~10,000까지 전체 숫자로 이루어진 배열을 만들었습니다.
5. (lin 18, 20) numGenArr에 포함되지 않은 값을 fliter하여 셀프 넘버 배열을 만들고, forEach 메서드로 셀프 넘버를 각각 출력하였습니다.
728x90'유물 > └ 백준' 카테고리의 다른 글
<백준> 11654번: 아스키 코드 (0) 2022.01.16 <백준> 1065번: 한수 (0) 2022.01.13 <백준> 4344번: 평균은 넘겠지 (0) 2022.01.10 <백준> 8958번: OX퀴즈 (0) 2022.01.10 <백준> 1546번: 평균 (0) 2022.01.08