๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/goorm

[๊ตฌ๋ฆ„LEVEL] ๊ทผ๋ฌต์žํ‘

by dar0m! 2020. 3. 12.
๋‚œ์ด๋„ ์ •๋‹ต๋ฅ 
โ˜…โ˜… 61.9%
 

๊ตฌ๋ฆ„LEVEL

๋‚œ์ด๋„๋ณ„ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ SW ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

level.goorm.io

๋ฌธ์ œ

ํ˜„์žฌ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ •์ˆ˜๊ฐ€ ํ•œ ๋ฒˆ์”ฉ ๋“ฑ์žฅํ•˜๋Š” ๊ธธ์ด N์˜ ์ˆ˜์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹น์‹ ์€ ์—ฐ์†๋œ K๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๊ณจ๋ผ์„œ ํ•œ ๊ณณ์— ์ž ์‹œ ๋ชจ์•„๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋‹น์‹ ์ด ๊ณ ๋ฅธ K๊ฐœ์˜ ์ •์ˆ˜๋“ค์€ K๊ฐœ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๊ฐ„์€ ๊ณ ๋ คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ด ์ˆ˜์—ด์„ ๋ชจ๋‘ ๊ฐ™์€ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ ์ตœ์†Œ ๋ช‡ ๋ฒˆ ๊ณจ๋ผ์•ผ ํ•˜๋Š”์ง€ ๊ตฌํ•ด์ฃผ์„ธ์š”.

ํ•ด๊ฒฐ

key point, ๊ธธ์ด๊ฐ€ N์ธ ์ˆ˜์—ด์„ ์ตœ์†Œํ•œ์œผ๋กœ ๊ฒน์น˜๊ฒŒ K๊ฐœ์”ฉ ๋ฌถ๋Š”๋‹ค.
  1. 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ N๊นŒ์ง€ k๋งŒํผ ์›€์ง์ธ๋‹ค.
  2. ์ด๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ฒ˜์Œ์—๋งŒ k๋งŒํผ ์›€์ง์ด๊ณ  ๊ทธ ์ดํ›„๋ถ€ํ„ฐ๋Š” ๋ฐ”๋กœ ์ง์ „์— ๊ณจ๋ž๋˜ k๊ฐœ์˜ ์ •์ˆ˜ ์ค‘ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ถ€ํ„ฐ k-1๊ฐœ์˜ ์ˆซ์ž๋ฅผ ํ•ฉํ•˜์—ฌ k๊ฐœ๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค.
  3. ์œ„์ฒ˜๋Ÿผ ๋ฌถ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ans๋ณ€์ˆ˜๋ฅผ +1 ํ•ด์ฃผ๊ณ 
  4. ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ์œ„์น˜๊ฐ€ ์ˆ˜์—ด์˜ ํฌ๊ธฐ๋ฅผ ๋„˜์–ด์„ฐ๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ N๊นŒ์ง€์˜ ์ˆ˜์—ด์„, ๋ฐ”๋กœ ์ง์ „์— ๊ณจ๋ž๋˜ K๋ฅผ ํฌํ•จํ•˜์—ฌ K๊ฐœ์”ฉ ๊ณ ๋ฅธ ํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ฉด ๋ชจ๋‘ ๊ฐ™์€ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ์ตœ์†Œ ํšŸ์ˆ˜๊ฐ€ ๋œ๋‹ค. 

์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
using namespace std;
int input[100000];
int n, k, ans;
int main() {
    scanf("%d %d"&n, &k);
    
    for (int i = 1; i <= n; i++) {
        scanf("%d"&input[i]);
    }
    int idx = 1;
    while (1) {
        if (idx > n)break;
        if (idx == 1) idx += k;
        else idx += k-1;
        ans += 1;        
    }
    printf("%d", ans);
    return 0;
}
cs

๋Œ“๊ธ€