๐ ๋ฌธ์
ํ์๋ 1๋ถํฐ 100์ฌ์ด์ ์์ฐ์๊ฐ ์ ํ N์ฅ์ ์นด๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ์ ์ซ์์ ์นด๋๊ฐ ์ฌ๋ฌ์ฅ ์์ ์ ์๋ค. ํ์๋ ์ด ์ค 3์ฅ์ ๋ฝ์ ๊ฐ ์นด๋์ ์ ํ ์๋ฅผ ํฉํ ๊ฐ์ ๊ธฐ๋กํ๋ ค๊ณ ํ๋ค. 3์ฅ์ ๋ฝ์ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ธฐ๋กํ๋ค. ๊ธฐ๋กํ ๊ฐ ์ค K๋ฒ์งธ๋ก ํฐ ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
๋ง์ฝ ํฐ ์๋ถํฐ ๋ง๋ค์ด์ง ์๊ฐ 25 25 23 23 22 20 19.....์ด๊ณ K๊ฐ์ด 3์ด๋ผ๋ฉด K๋ฒ์งธ ํฐ ๊ฐ์ 22์ด๋ค.
๐ ํ์ด
๐ง๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ
- 3์ค for๋ฌธ์ ์ฌ์ฉํ์ฌ N์ฅ์ ์นด๋ ์ค 3์ฅ์ ์นด๋๋ฅผ ๋ฝ๊ณ ์นด๋์ ์ ํ ์๋ฅผ ํฉํ ๊ฐ์ ๋ฐฐ์ด์ ์ ์ฅํ๋ค.
- ๋ฐฐ์ด์ ์ ์ฅ๋ ๊ฐ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ Set ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
- ๋ค์ ์คํ๋ ๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต ๊ฐ์ด ์ ์ธ๋ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ํ K๋ฒ์งธ ํฐ ๊ฐ์ ์ฐพ๋๋ค.
function solution(n, k, card) {
let answer;
const arr = [];
for (let i = 0; i < n - 2; i++) {
for (let j = i + 1; j < n - 1; j++) {
for (let k = j + 1; k < n; k++) {
const sum = card[i] + card[j] + card[k];
arr.push(sum);
}
}
}
answer = [...new Set(arr.sort((a, b) => b - a))][k - 1];
return answer;
}
let arr = [13, 15, 34, 23, 45, 65, 33, 11, 26, 42];
console.log(solution(10, 3, arr));
๐จ๐ผ๐ซ ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ
๊ฐ์ฌ๋์ ์ฒ์๋ถํฐ Set ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ add() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๊ฐ์ ์ ์ฅํ๋ฉด์ ์ ์ผํ ๊ฐ์ ์ ์ฅํ๋ค. (Set -> ๋ฐฐ์ด)
๋์ ํ์ด ๋ฐฉ๋ฒ(๋ฐฐ์ด -> Set -> ๋ฐฐ์ด)์ ๋นํด ๋ณํํ๋ ๊ณผ์ ์ด ์ค์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- Set ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
- 3์ค for๋ฌธ์ ์ฌ์ฉํ์ฌ N์ฅ์ ์นด๋ ์ค 3์ฅ์ ์นด๋๋ฅผ ๋ฝ๊ณ ์นด๋์ ์ ํ ์๋ฅผ ํฉํ ๊ฐ์ add() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ Set ๊ฐ์ฒด์ ์ถ๊ฐํ๋ค. (Set ๋ด์ ๊ฐ์ ์ ์ผํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ๊ฐ์์ง ๊ฒ์ฌ๋ฅผ ์ํ)
- Array.from() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ Set ๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํ ํ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- ์ ๋ ฌ๋ ๋ฐฐ์ด์์ K๋ฒ์งธ ํฐ ๊ฐ์ ์ฐพ๋๋ค.
function solution(n, k, card) {
let answer;
let tmp = new Set();
for (let i = 0; i < n; i++) {
for (let j = i + 1; j < n; j++) {
for (let k = j + 1; k < n; k++) {
tmp.add(card[i] + card[j] + card[k]);
}
}
}
let a = Array.from(tmp).sort((a, b) => b - a);
answer = a[k - 1];
return answer;
}
let arr = [13, 15, 34, 23, 45, 65, 33, 11, 26, 42];
console.log(solution(10, 3, arr));
๐ ์ฐธ๊ณ ํ ์ฌ์ดํธ
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 5] 02 - ๊ณตํต์์ ๊ตฌํ๊ธฐ (0) | 2022.09.18 |
---|---|
[JavaScript/section 5] 01 - ๋ ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2022.09.17 |
[JavaScript/section 4] 04 - ์กธ์ ์ ๋ฌผ (0) | 2022.09.15 |
[JavaScript/section 4] 03 - ๋ฉํ ๋ง (0) | 2022.09.14 |
[JavaScript/section 4] 02 - ๋ค์ง์ ์์ (0) | 2022.09.14 |