728x90
https://www.acmicpc.net/problem/11866
11866๋ฒ: ์์ธํธ์ค ๋ฌธ์ 0
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
โญ ๋ด ์์ค ์ฝ๋
#include<iostream>
#include <vector>
#include<algorithm>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, k;
cin >> n >> k;
int temp = k-1;
vector<int> vec;
vector<int> tem;
for (int i = 1; i <= n; i++) {
vec.push_back(i);
}
cout << "<" << vec[temp];
tem.push_back(temp);
while (tem.size() != n) {
int i = 0;
while (i < k) {
temp++;
if (temp >= n) {
temp = temp - n;
}
if (tem.end() == find(tem.begin(), tem.end(), temp)) {
i++;
}
}
cout << ", " << vec[temp];
tem.push_back(temp);
}
cout << ">";
return 0;
}
๐ ๋ฌธ์ ํ์ด
- tem.end() == find(tem.begin(), tem.end(), temp) - vector tem ์ temp ๊ฐ์ด ์๋์ง ํ์ธํ๋ค
- ์์ผ๋ฉด ์์ด์ ์งํ์ํค๊ธฐ ์ํด i ๊ฐ์ ์ฆ๊ฐ
- i ๊ฐ์ด K๋ฒ ์ฆ๊ฐ๋์์ผ๋ฉด ์ถ๋ ฅํด์ผ๋๋ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ๊ฐ(vec[temp])์ ์ถ๋ ฅํ๊ณ tem์ temp๊ฐ์ ์ถ๊ฐํ์ฌ ํด๋น ๊ฐ์ด ์ถ๋ ฅ๋์ด ์ ์ธ๋ ๊ฐ์์ ํ์
์๊ฐ์ด 304ms๊ฐ ๋์จ ๊ฑธ ๋ณด๋ ๊ทธ๋ค์ง ํจ์จ์ ์ด์ง ๋ชปํ ์ฝ๋์ธ ๊ฒ ๊ฐ๋ค. ์์ธํธ์ค ์์ด ๊ณต๋ถ๋ฅผ ํด์ ๋ ํจ์จ์ ์ธ ์ฝ๋๋ก ๋ค์ ํ์ด์ผ๊ฒ ๋ค!
โจ ๋ฌธ์ ํ์ด ๊ฒฐ๊ณผ

728x90