728x90

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

 

2164번: 카드2

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

www.acmicpc.net

 

 

문제)

 

 

 

풀이)

 

금방금방 풀 수 있는 문제!

boolean 변수를 이용해 true면 버리고, false면 카드 맨 뒤로 가는 것을 반복했다.

 

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

public class Main_BJ_2164_카드2 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		Queue<Integer> queue = new LinkedList<>();
		for(int i=1; i<=num; i++) {
			queue.offer(i);
		}
		
		boolean check = true;
		int card = 0;
		while(!queue.isEmpty()) {
			if(check) { // true면 버리기
				card = queue.poll();
				check = false;
			}
			else {	//	false면 뒤로 가기
				card = queue.poll(); 
				queue.offer(card);
				check = true;
			}
		}
		System.out.println(card);
		sc.close();
	}

}

 

 

 

 

 

728x90

+ Recent posts