티스토리 뷰


title: "요세푸스 문제 0(11866)"
category: 백준[Class-2]
tags: [C++, JavaScript, 백준]
date: "2021-03-26"


문제 링크

요세푸스 문제 0(11866)

C++

#include <iostream>
#include <queue>

using namespace std;

// 문제 풀이 함수
void solution(){
    int n, k;
    cin >> n >> k;

    queue<int> q;
    for(int i=1; i<=n; i++){
        q.push(i);
    }

    string log = "<";
    while(!q.empty()){
        for(int i=0; i<k-1; i++){
            int num = q.front();
            q.pop();
            q.push(num);
        }
        int num = q.front();
        q.pop();
        log += to_string(num) + ", ";
    }
    log.pop_back();
    log.pop_back();
    log += ">";
    cout<<log;
}

bool exists(const char* fileName){
    FILE* fp;
    if((fp = fopen(fileName, "r"))){
        fclose(fp);
        return true;
    }
    return false;
}

int main() {
    if(exists("stdin")){
        freopen("stdin", "r", stdin);
        solution();
        fclose(stdin);
    }
    else{
        solution();
    }

    return 0;
}

JavsScript

const fs = require("fs");
// split 조절
const input = fs.readFileSync("dev/stdin").toString().trim().split(" ");

// 문제 풀이
const n = +input[0];
const k = +input[1];

const log = [];
const queue = Array.from({ length: n }, (v, i) => i + 1);
while (queue.length > 0) {
  // k-1번 push, pop
  for (let i = 0; i < k - 1; i++) {
    const num = queue.shift();
    queue.push(num);
  }
  const num = queue.shift();
  log.push(num);
}

// print
console.log(`<${log.join(", ")}>`);
728x90
반응형

'Baekjoon Solutions > Class-2' 카테고리의 다른 글

[백준] 스택 수열(1874)  (0) 2021.03.27
[백준] 랜선 자르기(1654)  (1) 2021.03.26
[백준] 덱(10866)  (0) 2021.03.25
[백준] 큐(10845)  (0) 2021.03.25
[백준] 스택(10828)  (0) 2021.03.25
댓글
04-28 01:24
링크