๐ ๋ฌธ์
๋
์ผ ๋ก๋๋ {1, 2, ..., 49}์์ ์ 6๊ฐ๋ฅผ ๊ณ ๋ฅธ๋ค.
๋ก๋ ๋ฒํธ๋ฅผ ์ ํํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ฅ ์ ๋ช
ํ ์ ๋ต์ 49๊ฐ์ง ์ ์ค k(k>6)๊ฐ์ ์๋ฅผ ๊ณจ๋ผ ์งํฉ S๋ฅผ ๋ง๋ ๋ค์ ๊ทธ ์๋ง ๊ฐ์ง๊ณ ๋ฒํธ๋ฅผ ์ ํํ๋ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, k=8, S={1,2,3,5,8,13,21,34}์ธ ๊ฒฝ์ฐ ์ด ์งํฉ S์์ ์๋ฅผ ๊ณ ๋ฅผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ ์ด 28๊ฐ์ง์ด๋ค. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34])
์งํฉ S์ k๊ฐ ์ฃผ์ด์ก์ ๋, ์๋ฅผ ๊ณ ๋ฅด๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์
๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ
์คํธ ์ผ์ด์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ฐ ํ
์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ฒซ ๋ฒ์งธ ์๋ k (6 < k < 13)์ด๊ณ , ๋ค์ k๊ฐ ์๋ ์งํฉ S์ ํฌํจ๋๋ ์์ด๋ค. S์ ์์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ฃผ์ด์ง๋ค.
์
๋ ฅ์ ๋ง์ง๋ง ์ค์๋ 0์ด ํ๋ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๊ฐ ํ
์คํธ ์ผ์ด์ค๋ง๋ค ์๋ฅผ ๊ณ ๋ฅด๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ์ถ๋ ฅํ๋ค. ์ด๋, ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๋ค.
๊ฐ ํ
์คํธ ์ผ์ด์ค ์ฌ์ด์๋ ๋น ์ค์ ํ๋ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์
์์ ์ ๋ ฅ | ์์ ์ถ๋ ฅ |
7 1 2 3 4 5 6 7 8 1 2 3 5 8 13 21 34 0 |
1 2 3 4 5 6 1 2 3 4 5 7 1 2 3 4 6 7 1 2 3 5 6 7 1 2 4 5 6 7 1 3 4 5 6 7 2 3 4 5 6 7 1 2 3 5 8 13 1 2 3 5 8 21 1 2 3 5 8 34 1 2 3 5 13 21 1 2 3 5 13 34 1 2 3 5 21 34 1 2 3 8 13 21 1 2 3 8 13 34 1 2 3 8 21 34 1 2 3 13 21 34 1 2 5 8 13 21 1 2 5 8 13 34 1 2 5 8 21 34 1 2 5 13 21 34 1 2 8 13 21 34 1 3 5 8 13 21 1 3 5 8 13 34 1 3 5 8 21 34 1 3 5 13 21 34 1 3 8 13 21 34 1 5 8 13 21 34 2 3 5 8 13 21 2 3 5 8 13 34 2 3 5 8 21 34 2 3 5 13 21 34 2 3 8 13 21 34 2 5 8 13 21 34 3 5 8 13 21 34 |
โ๏ธ ํ์ด
์ด ๋ฌธ์ ๋ ์ฌ๊ท๋ฅผ ์ด์ฉํด์ ํ์๋ค.
์ฐ์ ์ผ์ด์ค๊ฐ ์ฌ๋ฌ๋ฒ ์ฃผ์ด์ง๊ธฐ ๋๋ฌธ์ console.log๋ฅผ ํ ๋ฒ๋ง ์ฐ๊ธฐ ์ํด์ answers๋ผ๋ ๋ฐฐ์ด์ ๋ง๋ค์ด์ ๋ด์๋ค. ๋ํ. ๋ต์ผ๋ก ๋์ฌ ์ซ์๋ค์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ด์ง ์ผ์ด์ค๋ฅผ ์ ๋ ฌ์์ผ์ฃผ๊ณ ์กฐํฉ์ ๊ตฌํ๋ค.
์ฌ๊ท๋ก search๋ผ๋ ํจ์๋ฅผ ๊ณ์ํด์ ํธ์ถํ๋ฉด์ select์ ์ซ์๋ฅผ ์ ํํด์ pushํ๋ค. ์ด๋ ์ซ์๋ค์์ ์ซ์๋ฅผ ์ ํํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ์ ์ํํ ๋ ์์ํ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ํด์ ๋๊ฒจ์ฃผ๋ฉฐ ์ค๋ณต์ ํ์ด ์ผ์ด๋์ง ์๋๋กํ๋ค. ์ด 6๊ฐ์ ์ซ์๋ฅผ ๋ฝ์์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ณ ๋ฅธ ์ซ์๊ฐ 6๊ฐ ์ด์์ด ๋๋ ์์ (select.length >= 6)์ answer์ ๋ฃ์ด์ฃผ์๊ณ ๋ ์ด์ ์ฌ๊ท๊ฐ ์ผ์ด๋์ง ์๋๋ก returnํ๋ค. ์ดํ return์ด ๋๊ณ ์ ํํ๋ ์ซ์๋ฅผ popํ๋ฉด์ ๋ฐ๋ณต๋ฌธ์ด ๊ณ์ ์ํ๋๋ฉฐ ๋ชจ๋ ์กฐํฉ์ ์ ํํ๊ฒ ๋๋ค.
ํ๋์ ์ผ์ด์ค๋ฅผ ๋ค ์ ํํ๊ฒ ๋๋ฉด answer์ ๋ชจ๋ ์ซ์๋ค์ด ๋ด๊ฒจ์๋๋ "\n"์ผ๋ก join ํด์ฃผ๊ฒ ๋๋ฉด ์ค๋ฐ๊ฟ๋์ด answers์ ๋ค์ด๊ฐ๊ฒ ๋๊ณ ๋ง์ง๋ง์ ์ผ์ด์ค๋ง๋ค ๊ณต๋ฐฑ์ ๋ฃ์ด์ฃผ๋ฉฐ("\n"์ผ๋ก ๋ค์ ํ๋ฒ join) ์ถ๋ ฅํ๋ฉฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
โจ๏ธ ์ฝ๋
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './testcase/6603.txt';
const inputs = fs.readFileSync(filePath).toString().trim().split('\n');
const answers = [];
for (const input of inputs) {
if (input === '0') break;
const nums = input.split(' ').map(Number);
nums.shift();
nums.sort((a, b) => a - b);
const answer = [];
const len = nums.length;
const select = [];
const search = idx => {
if (select.length >= 6) {
answer.push(select.join(' '));
return;
}
for (let i = idx; i < len; i++) {
select.push(nums[i]);
search(i + 1);
select.pop();
}
};
search(0);
answers.push(answer.join('\n'));
}
console.log(answers.join('\n\n'));
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ํฉ๋ถํด (๋ฐฑ์ค - 2225) (0) | 2023.05.25 |
---|---|
[Algorithm] ๋ฌผํต (๋ฐฑ์ค - 2251) (0) | 2023.05.22 |
[Algorithm] ์ต๋จ๊ฒฝ๋ก (๋ฐฑ์ค - 1753) (0) | 2023.05.21 |
[Algorithm] 1ํ๋ (๋ฐฑ์ค - 5557) (1) | 2023.05.16 |
[Algorithm] ์ต์ ๋น์ฉ ๊ตฌํ๊ธฐ (๋ฐฑ์ค - 1916) (0) | 2023.05.09 |