ํ์ด ๋ ์ง : 2025.04.21
๋ฌธ์ ์ ํ : ์ฐ์ต๋ฌธ์
๋ฌธ์ ์ ๋ชฉ : ์ซ์์ ํํ
๋ฌธ์ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/12924
Intuition
- ์์ฐ์ n์ ์ฐ์๋ ์์ฐ์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
์๋ฅผ ๋ค์ด n์ด 15๋ผ๋ฉด, 1+2+3+4+5, 4+5+6, 7+8, 15 ์ ๋ค ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. - n/2๋ณด๋ค ํฐ ์์ฐ์๋ถํฐ ์์ํ๋ ์์ฐ์์ ํฉ์ ์๋ค. ๋ฐ๋ผ์ ์์ฐ์์ ํฉ์ n/2 ๋ณด๋ค ์์ ์๋ถํฐ ์์ํ๋ ์ ์ ๊ณ ๋ คํ๋ค.
- n ์์ฒด๋ก๋ง ํํ๋๋ ์ฃ์ง์ผ์ด์ค ํ ๊ฐ์ง๊ฐ ์๋ค.
Approach
- ์ฐ์๋ ์์ฐ์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ์ ์ฅํ๋ ๋ณ์ answer๋ฅผ ์ ์ธํ๋ค.
- ์๊ธฐ ์์ ์ ๋ฌด์กฐ๊ฑด ํฌํจ๋๋ฏ๋ก 1๋ก ์ ์ธํ๋ค.
- for ๋ฃจํ
- 1๋ถํฐ ์์ํ์ฌ n/2 ๋ณด๋ค ์์ ์์ฐ์๊น์ง ๋ฐ๋ณตํ๋ค.
- ์์ฐ์์ ํฉ์ ์ ์ฅํ๋ ๋ณ์ sum, ์์ฐ์ ํฉ์ ์์ํ๋ ๋ณ์ start๋ฅผ ์ ์ธํ๋ค.
- while ๋ฃจํ
- sum์ start๋ฅผ ๋์ ํ๊ณ ๋ฐ๋ณตํ ๋๋ง๋ค start๋ฅผ 1์ฉ ์ฆ๊ฐ์ํจ๋ค.
- sum์ด n๋ณด๋ค ์์ ๋๊น์ง๋ง ๋ฐ๋ณตํ๋ค.
- sum์ด n๊ณผ ๊ฐ์์ก๋ค๋ฉด answer๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
- answer๋ฅผ ๋ฐํํ๋ค.
Complexity
- Time complexity : O(n²)
- for ๋ฃจํ์์ n/2๋ฒ ๋ฐ๋ณตํ๋ฏ๋ก O(n), while ๋ฌธ์์๋ ์ต์ ์ ๊ฒฝ์ฐ nํ์ ๊ฐ๊น๊ฒ(์ค์ ๋ก๋ n๋ณด๋ค ์์ง๋ง) ๋ฐ๋ณตํ๋ค. ๋ฐ๋ผ์ ๋๋ต์ ์ผ๋ก O(n²) ์ผ๋ก ๋ณด์ธ๋ค.
- Space complexity : O(1)
- ๋ณ๋์ ๋ฐฐ์ด์ด๋ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ฌ์ฉ๋์ง ์์ผ๋ฏ๋ก O(1)์ด๋ค.
Code
function solution(n) {
let answer = 1;
for (let i = 1; i < n/2; i++) {
let sum = 0;
let start = i;
while (sum < n) {
sum += start
start += 1;
}
if (sum === n) {
answer += 1;
}
}
return answer;
}
๋ค๋ฅธ ๋ฐฉ์์ ์ฝ๋ : ํฌ ํฌ์ธํฐ or ์ฌ๋ผ์ด๋ฉ ์๋์ฐ ๋ฐฉ์
- start, end๋ ์ฐ์๋ ์์ฐ์ ๊ตฌ๊ฐ์ ์์๊ณผ ๋์ ์๋ฏธํ๊ณ , 1๋ถํฐ ์์ํ๋ค. sum์ ๊ทธ ๊ตฌ๊ฐ์ ํฉ์ด๋ค.
ํฉ์ด n๋ณด๋ค ์์ผ๋ฉด end๋ฅผ ๋๋ ค์ sum์ ๋ํ๋ค.
ํฉ์ด n๋ณด๋ค ํฌ๋ฉด start๋ฅผ ์ค์ฌ์ sum์ ๋ํ๋ค.
ํฉ์ด n๊ณผ ์ผ์นํ๋ฉด ์ด๋ฅผ ์นด์ดํธํ๊ณ ๋ค์ ๊ตฌ๊ฐ(start + 1)๋ก ๋์ด๊ฐ๋ค.
์๊ธฐ ์์ ์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํฌํจํ์ฌ ์ ๋ต์ ๋ฐํํ๋ค. - start, end๋ ๋ ๊ฐ์ ํฌ์ธํฐ๊ฐ ๋์ด ํ ๋ฐฉํฅ์ผ๋ก ์์ง์ธ๋ค.
๊ฐ๊ฐ ์ต๋ nํ ์ด๋ํ๋ฏ๋ก ์๊ฐ๋ณต์ก๋๋ O(n)์ด ๋์ด ๋ ํจ์จ์ ์ธ ์ฝ๋๊ฐ ๋๋ค.
function solution(n) {
let answer = 0;
let start = 1, end = 1, sum = 1;
while (start <= n / 2) {
if (sum === n) {
answer++;
sum -= start;
start++;
} else if (sum < n) {
end++;
sum += end;
} else {
sum -= start;
start++;
}
}
return answer + 1;
}
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Programmers - Lv.2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2025.04.30 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ (0) | 2025.04.22 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ (0) | 2025.04.17 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (0) | 2025.04.16 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ์ต์๊ฐ ๋ง๋ค๊ธฐ (0) | 2025.04.10 |