๋ฌธ์
์์ธํธ์ค ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1๋ฒ๋ถํฐ N๋ฒ๊น์ง N๋ช ์ ์ฌ๋์ด ์์ ์ด๋ฃจ๋ฉด์ ์์์๊ณ , ์์ ์ ์ K(≤ N)๊ฐ ์ฃผ์ด์ง๋ค. ์ด์ ์์๋๋ก K๋ฒ์งธ ์ฌ๋์ ์ ๊ฑฐํ๋ค. ํ ์ฌ๋์ด ์ ๊ฑฐ๋๋ฉด ๋จ์ ์ฌ๋๋ค๋ก ์ด๋ฃจ์ด์ง ์์ ๋ฐ๋ผ ์ด ๊ณผ์ ์ ๊ณ์ํด ๋๊ฐ๋ค. ์ด ๊ณผ์ ์ N๋ช ์ ์ฌ๋์ด ๋ชจ๋ ์ ๊ฑฐ๋ ๋๊น์ง ๊ณ์๋๋ค. ์์์ ์ฌ๋๋ค์ด ์ ๊ฑฐ๋๋ ์์๋ฅผ (N, K)-์์ธํธ์ค ์์ด์ด๋ผ๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด (7, 3)-์์ธํธ์ค ์์ด์ <3, 6, 2, 7, 5, 1, 4>์ด๋ค.
N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ฉด (N, K)-์์ธํธ์ค ์์ด์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 1,000)
์ถ๋ ฅ
์์ ์ ๊ฐ์ด ์์ธํธ์ค ์์ด์ ์ถ๋ ฅํ๋ค.
ํ์ด
๋ฐ์ดํฐ์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๊ฐ ์ด๋ฃจ์ด์ง๋ ํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ ๊ฑฐํ ์ฌ๋์ด ๋์ฌ ๋๊น์ง pop/push๋ฅผ ๋ฐ๋ณตํ๋ค๊ฐ k๋ฒ์งธ ์ฌ๋์ ์ญ์ ํ๋ฉด ๋๋ค!
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
vector<int> playGame(int k, queue<int> &q){
vector<int> result; // ์์ธํธ์ค ์์ด
int cnt = 0; // ๋ช ๋ฒ์งธ ์ฌ๋์ธ์ง ํ์
int x;
while(!q.empty()){
x = q.front();
q.pop();
cnt++;
if (cnt == k){ // ์ฌ๋ ์ ๊ฑฐ -> result ์์ด์ ์ถ๊ฐ
result.push_back(x);
cnt = 0;
continue;
}
q.push(x);
}
return result;
}
int main() {
int n, k;
queue<int> q;
// ์
๋ ฅ
cin >> n >> k;
for (int i=1; i<=n; i++)
q.push(i);
// ์ฐ์ฐ
vector<int> result = playGame(k, q);
// ์ถ๋ ฅ
cout << "<";
for (int i=0; i<result.size()-1; i++)
cout << result[i] << ", ";
cout << result[result.size()-1] << ">";
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 2504๋ฒ: ๊ดํธ์ ๊ฐ (0) | 2022.07.31 |
---|---|
[๋ฐฑ์ค/C++] 18115๋ฒ: ์นด๋ ๋๊ธฐ (0) | 2022.07.24 |
[๋ฐฑ์ค/C++] 2108๋ฒ: ํต๊ณํ (0) | 2022.07.24 |
[๋ฐฑ์ค/C++] 1213๋ฒ: ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ (0) | 2022.07.24 |
[๋ฐฑ์ค/C++] 20920๋ฒ: ์๋จ์ด ์๊ธฐ๋ ๊ดด๋ก์ (0) | 2022.07.17 |
๋๊ธ