Algorithm/๋ฐฑ์ค€

๋ฐฑ์ค€ 1158๋ฒˆ - ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ

giraffe_ 2022. 8. 8. 21:40

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

 

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

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

www.acmicpc.net

 

 

 

 

 

 

์ฒ˜์Œ์— ์–ด๋–ป๊ฒŒ ํ’€์–ด์•ผ ํ•˜๋‚˜ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค. Node ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ๋ฌธ์ œ์— ๋งž๊ฒŒ ํ๋กœ ์ˆœํ™˜์ด ๋˜๋„๋ก add์™€ pop, remove ๋“ฑ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋‚˜ ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ์—๋Š” ๋ฒˆ๊ฑฐ๋กญ๊ณ  ๋” ๋ณต์žกํ•ด ๋ณด์ธ๋‹ค.

 

๊ทธ๋ƒฅ ํ๋กœ ๊ตฌํ˜„์„ ํ•˜๋Š”๋ฐ, K๋ฒˆ์งธ ์•ž๊นŒ์ง€๋Š” ๋ฝ‘์•„์„œ ๋‹ค์‹œ ๋’ค๋กœ ์‚ฝ์ž…ํ•˜๊ณ  K๋ฒˆ์งธ ์›์†Œ๋Š” ๋ฝ‘์•„๋ฒ„๋ฆฌ๊ณ ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค!

 

 

 

 

 

์ฝ”๋“œ

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		int K = sc.nextInt();

		Queue<Integer> queue = new LinkedList<>();
		
		for(int i = 1; i <= N; i++) {
			queue.add(i);
		}
		
		StringBuilder sb = new StringBuilder();
		sb.append("<");
		
		while(queue.size() > 0) {
			for(int i = 0; i < K - 1; i++)  {
				int p = queue.poll(); //์•ž์˜ ์›์†Œ ๋ฝ‘์•„์„œ
				queue.add(p); //๋’ค๋กœ ๋‹ค์‹œ ์‚ฝ์ž…
			}
			
			if(queue.size() != 1) { //K๋ฒˆ์งธ ์ œ๊ฑฐ
				sb.append(queue.poll() + ", ");
			}else {
				sb.append(queue.poll());
			}
		}
		
		sb.append(">");
		
		System.out.println(sb);
	}

}

 

 

 

 

 

 

๊ฒฐ๊ณผ