/* 1번부터 엔번까지 엔명의 사람이 원을 이루어면서 앉아있고, 양의 정수 엠이 주어집니다. 순서대로 엠번쨰 사람을 제거합니다. 에명의 사람이 모두 제거될 때 까지 계속됩니다. 엔 엠 조세퍼스 수녕ㄹ이라고 합니다. 7 3 조세퍼스 순열은 1234567 오께이 문제 이해했습니다. 어떻게 푸는지 살펴보도록 하겠습니다. */ #include <iostream> #include <queue> using namespace std; void Josepus(int N, int M) { queue<int> q; for (int i = 1; i <= N; ++i) q.push(i); cout << "<"; while (!q.empty()) { for (int i = 0; i < M - 1; ++i) { q.push(q.front()); q.pop(); } cout << q.front(); q.pop(); if (!q.empty()) cout << ", "; } cout << ">"; return; } int main() { int N, M; cin >> N >> M; Josepus(N, M); return 0; } |
대중화된 문제라던지, 풀이가 많은 것들, 그리고 문제로 주어진 것들에 대해서는 100퍼센트 완벽하게 풀이가 가능해야 됩니다. 그래야 코딩테스트 뿐만 아니라 면접때도 문제풀이를 통과할 수 있습니다. 앞으로도 개인적인 실력에 도움이 많이 되리라 생각됩니다. |