์ผ์ด์ฌ
ํ๊ตญ์คํ๊ต์ ๋ค๋๋ ํ์๋ค์ ๊ฐ์ ์ ์ ๋ฒํธ๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ์ด ํ๊ต ํ์ 3๋ช ์ ์ ์ ๋ฒํธ๋ฅผ ๋ํ์ ๋ 0์ด ๋๋ฉด 3๋ช ์ ํ์์ ์ผ์ด์ฌ๋ผ๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, 5๋ช ์ ํ์์ด ์๊ณ , ๊ฐ๊ฐ์ ์ ์ ๋ฒํธ๊ฐ ์์๋๋ก -2, 3, 0, 2, -5์ผ ๋, ์ฒซ ๋ฒ์งธ, ์ธ ๋ฒ์งธ, ๋ค ๋ฒ์งธ ํ์์ ์ ์ ๋ฒํธ๋ฅผ ๋ํ๋ฉด 0์ด๋ฏ๋ก ์ธ ํ์์ ์ผ์ด์ฌ์ ๋๋ค. ๋ํ, ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ, ๋ค์ฏ ๋ฒ์งธ ํ์์ ์ ์ ๋ฒํธ๋ฅผ ๋ํด๋ 0์ด๋ฏ๋ก ์ธ ํ์๋ ์ผ์ด์ฌ์ ๋๋ค. ๋ฐ๋ผ์ ์ด ๊ฒฝ์ฐ ํ๊ตญ์คํ๊ต์์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ผ์ด์ฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ํ๊ตญ์คํ๊ต ํ์๋ค์ ๋ฒํธ๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด number๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ํ์๋ค ์ค ์ผ์ด์ฌ๋ฅผ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์กฐ๊ฑด
* 3 โค number์ ๊ธธ์ด โค 13
* -1,000 โค number์ ๊ฐ ์์ โค 1,000
* ์๋ก ๋ค๋ฅธ ํ์์ ์ ์ ๋ฒํธ๊ฐ ๊ฐ์ ์ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
์
์ถ๋ ฅ ์ #1
๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
ํ์๋ค์ ์ ์ ๋ฒํธ ์ (-3, 0, 3), (-2, 0, 2), (-1, 0, 1), (-2, -1, 3), (-3, 1, 2) ์ด ์ผ์ด์ฌ๊ฐ ๋ ์ ์์ผ๋ฏ๋ก, 5๋ฅผ return ํฉ๋๋ค.
์
์ถ๋ ฅ ์ #3
์ผ์ด์ฌ๊ฐ ๋ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
number | result |
---|---|
[-2, 3, 0, 2, -5] | 2 |
[-3, -2, -1, 0, 1, 2, 3] | 5 |
[-1, 1, -1, 1] | 0 |
๋ฌธ์ ํ์ด
์ฌ๊ทํจ์๋ฅผ ๋๋ฉฐ 3๊ฐ์ ์ซ์๋ฅผ ์กฐํฉํ ๋ฐฐ์ด์ ํฉ์ด 0์ผ ๊ฒฝ์ฐ์ answer์ 1์ ๋ํด์ฃผ๋ ๋ฐฉ์์ด๋ค.
function solution(number) {
var answer = 0;
const combination = (current, start) => {
if (current.length === 3) {
answer += current.reduce((acc, cur) => acc + cur, 0) === 0 ? 1 : 0;
return;
}
for (let i = start; i < number.length; i++) {
combination([...current, number[i]], i + 1);
}
}
combination([], 0);
return answer;
}
๋ค๋ฅธ ํ์ด ๋ฐฉ์
for๋ฌธ์ 3๊ฐ ์ด์ฉํ์ฌ ๊ฐ๊ฐ number๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ํด์ฃผ๋ ๋ฐฉ์์ด๋ค. 3๊ฐ์ ์๋ฅผ ๋ํด 0์ด ๋์ฌ ๊ฒฝ์ฐ์ answer๊ฐ 1 ์ฆ๊ฐ๋๋ ๋ฐฉ์.
function solution(number) {
let answer = 0;
for(let i = 0; i < number.length-2; i++) {
for(let j = i+1; j < number.length-1; j++) {
for(let k = j+1; k < number.length; k++) {
if(number[i] + number[j] + number[k] === 0) {
answer++;
}
}
}
}
return answer;
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ (1) | 2022.12.05 |
---|---|
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์๋ฆฟ์ ๋ํ๊ธฐ (1) | 2022.12.05 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : 2016๋ (1) | 2022.11.30 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (1) | 2022.11.29 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์์ ์ํธ (2) | 2022.11.28 |
๋๊ธ