๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 2161๋ฒˆ: ์นด๋“œ1(์‹œ๋ฎฌ๋ ˆ์ด์…˜)

by ์ฃผ๋ฐœ2 2020. 2. 7.
๋ฐ˜์‘ํ˜•

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

 

2161๋ฒˆ: ์นด๋“œ1

N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ ํ•œ ์žฅ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ์„ , ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ๋ฐ”๋‹ฅ์— ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ œ์ผ ์œ„์— ์žˆ๋Š” ์นด๋“œ๋ฅผ ์ œ์ผ ์•„๋ž˜์— ์žˆ๋Š” ์นด๋“œ ๋ฐ‘์œผ๋กœ ์˜ฎ๊ธด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N=4์ธ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์นด๋“œ๋Š” ์ œ์ผ ์œ„์—์„œ๋ถ€ํ„ฐ 1234 ์˜ ์ˆœ์„œ๋กœ ๋†“์—ฌ์žˆ๋‹ค. 1์„ ๋ฒ„๋ฆฌ

www.acmicpc.net

์ฝ”๋“œ

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();
		Queue<Integer> q = new LinkedList<Integer>();
		
		for(int i=1; i<=N; i++)
			q.offer(i);
		
		while(!q.isEmpty()) {	 // ํ๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ ๊นŒ์ง€
			int num1 = q.poll(); // ์ ค ์œ„์— ์žˆ๋Š” ์นด๋“œ ๋นผ๋‚ด๊ณ  ์ €์žฅ
			System.out.print(num1 + " ");	// ์ ค ์œ„์— ์นด๋“œ ์ถœ๋ ฅ
			if(q.isEmpty())	// ํ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด => ์ค‘๋‹จ
				break;
			
			int num2 = q.poll();	// ๋‘ ๋ฒˆ์งธ๋กœ ์œ„์— ์žˆ๋Š” ์นด๋“œ ๋นผ๋‚ด๊ณ  ์ €์žฅ
			q.offer(num2);			// ๋นผ๋‚ธ ์นด๋“œ ๋‹ค์‹œ ํ์— ๋„ฃ๊ธฐ
		}
		
		scan.close();
	}

}

ํ’€์ด

ํ๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐํ–ˆ๋‹ค.

๊ฐ€์žฅ ์œ„์— ๊ฐ’ ์ œ๊ฑฐ - poll()

๊ทธ ๋‹ค์Œ์œผ๋กœ ์œ„์— ๊ฐ’ ์ œ๊ฑฐ ํ›„ ์‚ฝ์ž… - offer() 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€