본문 바로가기

알고리즘/백준

[1일 1알고리즘] 백준 2164. 카드2

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

 

2164번: 카드2

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

www.acmicpc.net

오늘은 할게 있지만 쉬운문제라도 풀자해서 예전에 틀렸던 문제중 쉬워보이는 것을 선택.

문제 지문도 짧고 문제에서 요구하는대로 풀면됨.

 

<수도코드>

set 1부터N까지 들어있는 큐
while(큐 크기가 1이 될때까지)
 poll 연산
 set 다시 poll 연산 한 Integer값
 set한 값 큐에 add 

print 큐에 남은 값

수도코드대로 구현한 결과 정답. 이전 코드보니 그냥 지문대로 코드를 구현안함 .... 쩝

 

정답 코드 (남이 푼 코드는 어떤지 참고정도만 하시고 스스로 풀어보시길)

 

더보기
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main_2164_카드2 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		Queue<Integer> queue = new LinkedList<>();
		for (int i = 1; i <= N; i++)
			queue.add(i);
		// 입력완료
		while (queue.size() != 1) {
			queue.poll();
			int top = queue.poll();
			queue.add(top);
		}

		System.out.println(queue.poll());
		sc.close();
	}

}

 

'알고리즘 > 백준' 카테고리의 다른 글

[1일 1알고리즘] 백준 1303. 전쟁 - 전투  (0) 2021.12.25