Algorithm
- ๋ก๋ -
๋ฌธ์
๋ ์ผ ๋ก๋๋ {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๊ฐ ์ฃผ์ด์ก์ ๋, ์๋ฅผ ๊ณ ๋ฅด๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ์ถ๋ ฅ ์์
๋ฌธ์ ํ๊ธฐ
const sol = (input) => {
let idx = 0;
let answer = "";
while (input[idx].length !== 1) {
const [N, ...S] = input[idx++].split(" ").map(Number);
function dfs(V, pick) {
if (pick.length === 6) {
answer += `${pick.join(" ")}\n`;
return;
}
for (let i = V; i < N; i++) {
dfs(i + 1, [...pick, S[i]]);
}
}
dfs(0, []);
answer += "\n";
}
return answer;
};
const input = [];
require("readline")
.createInterface(process.stdin, process.stdout)
.on("line", (line) => {
input.push(line);
})
.on("close", () => {
console.log(sol(input));
process.exit();
});
๋ฐ์ํ
'๊ฐ์ธ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][Node.js] 7287๋ฒ : ๋ฑ๋ก (0) | 2021.12.07 |
---|---|
[๋ฐฑ์ค][Node.js] 6679๋ฒ : ์ฑ๊ธฐํ ๋ค์๋ฆฌ ์ซ์ (0) | 2021.12.06 |
[๋ฐฑ์ค][Node.js] 6359๋ฒ : ๋ง์ทจํ ์๋ฒ (0) | 2021.12.03 |
[๋ฐฑ์ค][Node.js] 6064๋ฒ : ์นด์ ๋ฌ๋ ฅ (0) | 2021.12.02 |
[๋ฐฑ์ค][Node.js] 5988๋ฒ : ํ์์ผ๊น ์ง์์ผ๊น (0) | 2021.12.01 |
๋๊ธ