💡기본 정보
유형
: 브루트포스
풀이 날짜
: 2025년 01월 06일
풀이방법 한줄 요약
: for문을 통해서 합에 자연수를 계속해서 더하다가 합과 N이 같으면 분해합 N의 생성자이므로 answer이 됨 계속해서 N이랑 같은 경우에 더함
💡문제에서 구해야 할 것
N의 분해합 : N과 N을 이루는 각 자리수의 합
어떤 자연수 M의 분해합이 N인 경우 -> N의 생성자
ex. 245 의 분해합 = 245 + 2 + 4 + 5 = 256
-> 즉 245는 256의 생성자
- 입력 : 첫째 줄에 자연수 N이 주어짐
출력 : 생성자가 없는 경우에는 0을 출력
💡알고리즘 설계
- 자연수 N 입력 받기
- 합에 자연수를 계속해서 더하다가 합과 N이 같으면 분해합 N의 생성자이므로 answer이 됨 계속해서 n이랑 같은 경우에 더함
- 생성자 중 제일 작은 숫자 출력
💡CODE
const fs = require("fs");
const input = fs.readFileSync(0, "utf8").toString();
const n = parseInt(input);
function solution(n) {
let answer = 0;
for (let i = 1; i < n; i++) {
let candidate = i;
let sum = 0;
while (candidate > 0) {
sum += candidate % 10;
candidate = Math.floor(candidate / 10);
}
sum += i;
if (sum == n) {
answer = i;
break;
}
}
return answer;
}
console.log(solution(n));
💡시간복잡도
💡 틀린 이유 & 틀린 부분 수정
런타임 에러
: let answer=0; 을 깜빡하고 안 적음
💡 다른 풀이 or 기억할정보
const fs = require('fs');
const input = fs.readFileSync(0,"utf8").toString();
javascript로 알고리즘 문제를 푸는 경우에는 필수적으로 들어가야하는 문구임.
백준 14717 : 앉았다 (0) | 2025.01.09 |
---|---|
백준 10488 : 유레카 이론 (1) | 2025.01.08 |
백준 2309 : 일곱 난쟁이 (0) | 2025.01.07 |
개념 정리 : 스택, 큐, 리스트, 해시맵 개념과 사용코드(삽입, 삭제 등) 정리 (0) | 2025.01.06 |
[밀라 알고리즘 스터디]1주차 : 브루트 포스 (0) | 2025.01.06 |