Java/Algorithm

[Java-Algorithm] 백준 2164 풀이 (Queue)

Jeong Jeon
반응형

문제 : https://www.acmicpc.net/problem/2164

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

 

풀이 :

거의 Queue를 쓸줄 아느냐 확인만 하는 문제인것 같다.

알고리즘 잘모르니 기초부터 탄탄하게 잡아가자..!

public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int n = Integer.parseInt(br.readLine());
		br.close();

		//queue에 순서대로 담기
		Queue<Integer> queue = new LinkedList<Integer>();
		for (int i = 1; i <= n; i++) {
			queue.offer(i);
		}
		while(queue.size() != 1) {
			queue.remove();
			queue.offer(queue.poll());
		}

		System.out.println(queue.poll());
	}
반응형