풀이방법
사용된 것:
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 |