반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- HTTP
- 프로그래머스 레벨 2
- 프로그래머스
- javascript
- dfs
- 레벨 1
- 수학
- 그래프
- 백준
- BFS
- Algorithm
- 크롤링
- typescript
- Node.js
- 쉬운 문제
- 소켓
- Nestjs
- 자바스크립트
- 타입 챌린지
- 알고리즘
- type challenge
- 타입스크립트
- ip
- Crawling
- socket
- 문자열
- TCP
- dp
- HTTP 완벽 가이드
- 가천대
Archives
- Today
- Total
kakasoo
[node.js] 요세푸스 문제 ( 백준 1158번 ) 본문
반응형
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", (line) => {
main(line);
}).on("close", () => process.exit());
/**
*
* @param {string} line
*/
const main = (line) => {
const [N, K] = line.split(" ").map(Number);
const arr = new Array(N).fill(0).map((el, i) => i + 1);
let answer = "<";
while (arr.length) {
for (let i = 0; i < K; i++) {
arr.push(arr.shift());
}
if (arr.length === 1) {
answer += `${arr.pop()}>`;
} else {
answer += `${arr.pop()}, `;
}
}
console.log(answer);
};
실제 역사에 있었던 사건을 문제로 구성한 거라 한다. N명의 사람 중 K번째 사람을 죽이길 반복 ( 각자 자기 옆, 또는 옆옆, 어쨌거나 지정된 사람을 죽인다. ) 하기로 한 것. 최종적으로 1명만 살아남게 될 텐데, 요세푸스는 죽고 싶지 않아서 이 문제를 풀고 자신이 살아남을 수 있는 자리로 갔다고 한다.
로마에게 항복하지 않으려는 유대인들이, 죽음을 감수했던 때라, 요세푸스는 배신자 취급이라고.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[node.js] 일곱 난쟁이 ( 백준 2309번 ) (0) | 2021.05.12 |
---|---|
[node.js] 곱셈 ( 백준 1629번 ) (0) | 2021.05.11 |
[node.js] 트리의 부모 찾기 ( 백준 11725번 ) (0) | 2021.04.15 |
[node.js] 문자열 분석 ( 백준 10820번 ) (0) | 2021.04.15 |
[node.js] 10개씩 끊어 출력하기 ( 백준 11721번 ) (0) | 2021.04.15 |