https://school.programmers.co.kr/learn/courses/30/lessons/12924
첫 풀이
처음부터 하나씩 더해가며 합이 n이 되면 answer++
function solution(n) {
var answer = 1;
for (let i = 1; i <= Math.floor(n / 2); i++) {
let sum = i;
for (let j = i+1; j < n; j++) {
// 합이 n이 될때
sum += j;
if (sum === n) {
answer++;
break;
} else if (sum > n) {
break;
}
}
}
return answer;
}
➡ 정확성은 맞았지만 시간초과가 났다
첫번째 숫자 이후의 숫자는 Math.floor(n/2)+1이상일 수 없다
function solution(n) {
var answer = 1;
const half = Math.floor(n/2);
for (let i = 1; i <= half; i++) {
let sum = i;
for (let j = i+1; j <= half+1; j++) {
// 합이 n이 될때
sum += j;
if (sum === n) {
answer++;
break;
} else if (sum > n) {
break;
}
}
}
return answer;
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] 한 번만 등장한 문자 (0) | 2023.07.27 |
---|---|
[프로그래머스] 귤 고르기 (0) | 2023.07.18 |
[프로그래머스] 예상대진표 (0) | 2023.07.13 |
[프로그래머스] 이진 변환 반복하기 (0) | 2023.07.13 |
[프로그래머스] 짝지어 제거하기 (stack) (0) | 2023.06.08 |