알고리즘 문제풀이/백준

#2164 : 카드2

모항 2022. 4. 17. 20:37

풀이방법

사용된 것:

Deque

 

2022.04.17

덱을 사용하면 쉽게 풀리는 문제이다.

덱에 1부터 N까지를 순서대로 넣은 다음,

removeFirst() 한 번, removeFirst()를 해서 그 값을 temp에 저장하기, temp를 addLast()하기를

N-1번 반복하면 된다.

그 후 남아있는 하나의 값을 화면에 출력한다.

 

스택이나 큐로도 풀 수 있지만 그렇게 하면 다른 쪽 끝을 조작하는 함수를 따로 만들어주어야 하므로 편하게 덱을 사용하였다.

코드

Java(2022.04.17)

import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		
		Deque<Integer> deque = new LinkedList<Integer>();
		
		for(int i = 1; i<=n; i++) deque.addLast(i);
		for(int i = 1; i<n; i++) {
			deque.removeFirst();
			int temp = deque.removeFirst();
			deque.addLast(temp);
		}
		
		System.out.print(deque.remove());
		
		sc.close();

	}

}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#1259 : 팰린드롬수  (0) 2022.04.17
#2798 : 블랙잭  (0) 2022.04.17
#1978 : 소수 찾기  (0) 2022.04.17
#2609 : 최대공약수와 최소공배수  (0) 2022.04.17
#2930 : 가위 바위 보  (0) 2022.04.16