ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 1158 - 요세푸스 문제
    백준 algorithm 2020. 2. 26. 00:34
    반응형

    문제 설명

     

     

     

     

     

     

    queue를 사용하여 풀 수 있다. 

    원하는 n번째가 나올때까지 pop, push를 이어가다 원하는 숫자가 나오면 프린트하고 pop을 하는 방식을 취하면 된다. 

    본인은 해당하는 값들을 vector에 넣어 print하였다. 

     

     

     

     

     

     

    #include <iostream>
    #include <queue>
    #include <vector>
    
    using namespace std;
    
    
    
    int main()
    {
        ios_base::sync_with_stdio(false);
        cin.tie(nullptr);
        cout.tie(nullptr);
        
        int N, K;
        cin >> N>>K;
        
        queue<int> jose;
        vector<int> answer;
        
        for(int i=1;i<=N;++i)
        {
            jose.push(i);
        }
        
        
        while(!jose.empty())
        {
            for(int i=0; i<K-1; ++i)
            {
                jose.push(jose.front());
                jose.pop();
            }
            answer.push_back(jose.front());
            jose.pop();
        }
        cout<<"<";
        int i;
        for(i=0; i<answer.size()-1; ++i)
        {
            cout<<answer[i]<<", ";
        }
        cout<<answer[i]<<">\n";
        return 0;
    }
    
    
    반응형

    '백준 algorithm' 카테고리의 다른 글

    백준 10799 - 쇠막대기  (0) 2020.03.03
    백준 - 17413 단어 뒤집기 2  (0) 2020.03.02
    백준 1406 - 에디터  (0) 2020.02.25
    백준 1874 - 스택 수열  (0) 2020.02.21
    백준 9012 - 괄호  (0) 2020.02.21

    댓글

Designed by Who.