์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
2์ด | 256MB | 49.068% |
1158๋ฒ: ์์ธํธ์ค ๋ฌธ์
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
๋ฌธ์
ํด๊ฒฐ
key point, %(๋๋จธ์ง์ฐ์ฐ์)๋ฅผ ํ์ฉํ๋ค.
์์ ์์๋ ์ ๋ ฅ์ผ๋ก '7, 3' ์ด ์ฃผ์ด์ก์ผ๋ฏ๋ก ์ด๋๋ก ํด๋ณด๋ฉด
- ์ฒ์ ์์์ 0์ผ๋ก ์ก์ผ๋ฉด 3๋ฒ์งธ ์ฌ๋์ 2์ด๊ณ 2๋ฒ์ธ ์ฌ๋์ ์ ๊ฑฐ๋ ์ ์์ผ๋ฏ๋ก
- chk[2] = 1, ํ์ํ๊ณ
- 0๋ถํฐ ์์ํ์ผ๋ฏ๋ก ํ์ฌ์์น๋ฅผ ๋ํ๋ด๋ idx์์ +1์ ๋ํ ๊ฐ์ ์ถ๋ ฅํ๋ค. → 3
- ๊ทธ๋ฆฌ๊ณ num์ 1 ์ฆ๊ฐ์ํจ๋ค. (num์ ์ ๊ฑฐ๋ ์ฌ๋์ ์๋ฅผ ์ธ๋ ๋ณ์.) : num = 1
- ๋ ๋ค์ ์์น์ ๊ฐ๊ธฐ ์ํด์ ์นด์ดํธ ์ธ ๋ฒ์ ํ๊ณ ๋ค์ ์์น๋ฅผ ์ฐพ์๊ฐ๋ค.
- ๋ง์ฝ ํด๋น ์์น์ ์ฌ๋์ ์ ๊ฑฐํ์๋ค๋ฉด chk[idx] = 1 ์ด์์ ํ ๋ cnt๋ฅผ ์ฆ๊ฐ์ํค์ง ์๋๋ค.
- ๊ทธ๋ ๊ฒ ๋ค์ ์์น์ธ 5๋ฅผ ์ฐพ์๊ฐ์ 6์ ์ถ๋ ฅํ๊ณ chk[6] = 1, num++.๋ฅผ ํด์ค๋ค.
... ๋ฐ๋ณต ํ๋ค๋ณด๋ฉด
num = 6 ์ผ ๋๊ฐ ์ค๊ฒ ๋๊ณ , ๋ค์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ idx ๋ ์ ๊ฑฐ๋์ง ์์ ๋ง์ง๋ง ์ฌ๋์ ๊ฐ๋ฆฌํค๊ณ ์์ผ๋ฏ๋ก >์ ๊ฐ์ด ์ถ๋ ฅํ๊ณ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ค.
์ฝ๋
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
2004KB | 1740ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include <iostream>
using namespace std;
int n, k, chk[5005], idx, num;
int main() {
scanf("%d %d", &n, &k);
idx = k - 1;
printf("<");
while (1) {
if (num == n - 1) {
printf("%d>", idx + 1);
break;
}
else if (!chk[idx]) {
num++;
chk[idx] = 1;
printf("%d, ", idx + 1);
}
int cnt = 0;
while (cnt < k) {
idx = (idx + 1) % n;
if (!chk[idx]) cnt++;
}
}
return 0;
}
|
cs |
ํ๊ธฐ
์ฒ์ํ์์ ๋ ๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ 20kb์ค์๊ณ , ์๊ฐ๋ 52ms๊ฐ ์ค์๋ค.
- 1 ๋ถํฐ N๊น์ง ์ ์ฅํ๋ ๋ฐฐ์ด์ ๋ง๋ค์ง ์์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ ์ค๊ณ , ๋ฐฐ์ด ์ ๊ทผ ์๊ฐ๋ ์์๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ์ฐจ์ด๊ฐ ์๊ธด๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ์์ฝ๊ฒ ํ ๋ฒ ํ๋ ธ์๋๋ฐ ์๊พธ k๊ฐ ๋ค์ด๊ฐ ๊ณณ์ ์์๋ฅผ ์ ์ด๋์ ํ๋ฒ์ฉ ํ๋ฆฌ๋ ๊ฒ ๊ฐ๋ค.. ์ดํด
๋ง์๋ง ๊ธํด์ ์ด๋๋ฆฌ!!
'๐ฅ PS(Problem Solving) ๐ฅ > nํ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #1012 ์ ๊ธฐ๋ ๋ฐฐ์ถ (0) | 2020.05.03 |
---|---|
[BOJ] #14502 ์ฐ๊ตฌ์ (0) | 2020.04.23 |
๋๊ธ