SWLUG/๋ฐฑ์ค€ BEAKJOON

[C] ๋ฐฑ์ค€ BAEKJOON 11866๋ฒˆ: ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0

waterproof 2023. 9. 30. 21:29

 

https://www.acmicpc.net/problem/11866

 

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

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

www.acmicpc.net


[1] ๋ฌธ์ œ

 

 

 

๋ฌธ์ œ

์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

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)

์ถœ๋ ฅ

์˜ˆ์ œ์™€ ๊ฐ™์ด ์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

7 3

์˜ˆ์ œ ์ถœ๋ ฅ 1

<3, 6, 2, 7, 5, 1, 4>
 
 

[2] ์ •๋‹ต ๋ฐ ํ•ด์„

 

 

# ์ •๋‹ต ์ฝ”๋“œ (๋ฐฐ์—ด ํ™œ์šฉ)

( ์ถœ์ฒ˜: https://blog.naver.com/jungsk20/222877712533 )

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main(void){
	int n, k, arr[1001]={0,}, idx = 0, j = 1;
	scanf("%d %d", &n, &k);
	int s = n;
	printf("<");
	while (1) {
		if (n < j) j = 1;
		if (arr[j] == 0) idx += 1;
		if (idx == k) {
			arr[j] = 1;
			if (s != 1) {
				printf("%d, ", j);
				idx = 0;
				s -= 1;
			}
			else {
				printf("%d>", j);
				break;
			}
		}
		j += 1;
	}
	return 0;
}

 

 

# ํ•ด์„

 
int n, k, arr[1001]={0,}, idx = 0, j = 1;: ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ n, k, idx, j์™€ ํฌ๊ธฐ๊ฐ€ 1001์ธ ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด arr์„ ์„ ์–ธํ•œ๋‹ค. arr ๋ฐฐ์—ด์€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ๋‹ค.

scanf("%d %d", &n, &k);: ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ n๊ณผ k์— ์ €์žฅํ•œ๋‹ค.

int s = n;: s ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , n์˜ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

printf("<");: ํ™”๋ฉด์— < ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

while (1) { ... }: ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

if (n < j) j = 1;: n๋ณด๋‹ค j๊ฐ€ ํฌ๋ฉด j๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ด๋Š” ์›ํ˜•์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถ€๋ถ„์ด๋‹ค.

if (arr[j] == 0) idx += 1;: ๋งŒ์•ฝ arr[j]๊ฐ€ 0์ด๋ฉด idx๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

if (idx == k) { ... }: ๋งŒ์•ฝ idx๊ฐ€ k์™€ ๊ฐ™๋‹ค๋ฉด, ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

arr[j] = 1;: arr[j]๋ฅผ 1๋กœ ์„ค์ •ํ•˜์—ฌ ํ•ด๋‹น ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ์Œ์„ ํ‘œ์‹œํ•œ๋‹ค.

if (s != 1) { ... }: ๋งŒ์•ฝ ์•„์ง ์ถœ๋ ฅํ•ด์•ผ ํ•  ์ˆซ์ž๊ฐ€ ๋‚จ์•„์žˆ๋‹ค๋ฉด, ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

printf("%d, ", j);: j๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  , ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.

idx = 0;: idx๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

s -= 1;: ์ถœ๋ ฅํ•ด์•ผ ํ•  ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ํ•˜๋‚˜ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.

else { ... }: ๋งŒ์•ฝ ์ถœ๋ ฅํ•ด์•ผ ํ•  ์ˆซ์ž๊ฐ€ ๋” ์ด์ƒ ์—†๋‹ค๋ฉด, ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

printf("%d>", j);: j๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  >๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.

break;: ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

j += 1;: j๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

 

 

 

 


[3] ๋Š๋‚€ ์ 

 

์–ด๋ ค์›Œ์„œ ๊ตฌ๊ธ€๋งํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ตœ๋Œ€ํ•œ ์ดํ•ดํ•ด๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค!