๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/nํšŒ๋…

[BOJ] #1158 ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ

by dar0m! 2020. 5. 2.
์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ •๋‹ต ๋น„์œจ
 2์ดˆ  256MB 49.068%

 

 

1158๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ

์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net

 

๋ฌธ์ œ

ํ•ด๊ฒฐ

key point, %(๋‚˜๋จธ์ง€์—ฐ์‚ฐ์ž)๋ฅผ ํ™œ์šฉํ•œ๋‹ค.

์˜ˆ์ œ์—์„œ๋Š” ์ž…๋ ฅ์œผ๋กœ '7, 3' ์ด ์ฃผ์–ด์กŒ์œผ๋ฏ€๋กœ ์ด๋Œ€๋กœ ํ•ด๋ณด๋ฉด

  1. ์ฒ˜์Œ ์‹œ์ž‘์„ 0์œผ๋กœ ์žก์œผ๋ฉด 3๋ฒˆ์งธ ์‚ฌ๋žŒ์€ 2์ด๊ณ  2๋ฒˆ์ธ ์‚ฌ๋žŒ์€ ์ œ๊ฑฐ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ
    1. chk[2] = 1, ํ‘œ์‹œํ•˜๊ณ 
    2. 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฏ€๋กœ ํ˜„์žฌ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” idx์—์„œ +1์„ ๋”ํ•œ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค. → 3
    3. ๊ทธ๋ฆฌ๊ณ  num์„ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. (num์€ ์ œ๊ฑฐ๋œ ์‚ฌ๋žŒ์˜ ์ˆ˜๋ฅผ ์„ธ๋Š” ๋ณ€์ˆ˜.) : num = 1
  2. ๋˜ ๋‹ค์Œ ์œ„์น˜์— ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ ์นด์šดํŠธ ์„ธ ๋ฒˆ์„ ํ•˜๊ณ  ๋‹ค์Œ ์œ„์น˜๋ฅผ ์ฐพ์•„๊ฐ„๋‹ค.
    1. ๋งŒ์•ฝ ํ•ด๋‹น ์œ„์น˜์˜ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐํ–ˆ์—ˆ๋‹ค๋ฉด chk[idx] = 1 ์ด์—ˆ์„ ํ…Œ๋‹ˆ cnt๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.
  3. ๊ทธ๋ ‡๊ฒŒ ๋‹ค์Œ ์œ„์น˜์ธ 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

๋Œ“๊ธ€