(1).백준 16861번 Harshad Numbers는 자릿수의 합으로 해당 숫자가 나눠지는 값을 의미하며
주어진 값보다 크거나 같은 가장 작은 Harshad Number를 찾아야 하는 문제였다.
문제 조건 자체가 각 자릿수의 합으로 나누는 것이었기 때문에
for문으로 주어진 input값부터 증가하며 순회하고
내부에서는 String으로 변경한 값을 자릿수마다 더해줬는데
생각해보면 %10으로 나머지처리를 하고 Math.floor(n/10)처리도 괜찮았을 것 같지만
지금 처리한 방식이 오히려 더 처리에 효율적일 수도 있을 것 같고 잘 모르겠다.
어쨌거나 더한 자릿수를 현재 값에 %로 나머지를 구한 다음
나머지가 0인 경우 해당 값을 출력하고 break로 중단하는 방식으로 문제를 해결했다.
const input = Number(`987654321`)
for(let i = input ; i <= 1000000000 ; i++){
let sum = 0
let str = String(i)
for(let j = 0 ; j < str.length ; j++){
sum += Number(str[j])
}
if(i % sum == 0){
console.log(i)
break
}
}'회고' 카테고리의 다른 글
| [개발일지] - 227(설날 대체휴일) (1) | 2024.02.12 |
|---|---|
| [개발일지] - 226(설날) (0) | 2024.02.11 |
| [개발일지] - 224(설날) (0) | 2024.02.09 |
| [개발일지] - 223 (0) | 2024.02.08 |
| [개발일지] - 222 (0) | 2024.02.07 |
