-
[백준 - 2164번] 카드2 - Java //Wello Horld//Algorithm/BOJ(Baekjoon Online Judge) 2019. 7. 26. 13:42
이번에는 BOJ의 2164번 문제 "카드2"를 풀어보도록 하자
Queue를 이용한 아주 간단한 문제이다. 예제를 보면, N = 4일 경우에, 제일 위에서부터 1234 순서대로 카드가 주어지고, 차례대로 가장 위에 있는 카드를 버리고 남은 카드중에서 가장 위에있는 카드르 제일 밑으로 옮기는 것을 반복해주면 된다.
이와 같이 N = 4일 때, 답은 4가 된다. 이 프로세스대로 Queue를 이용해 구현해주기만 하면 되는 간단한 문제이다.
성공한코드는 아래와 같다.
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.readLine()); Queue<Integer> q = new LinkedList<Integer>(); for(int i = 1; i <= N; i++){ q.add(i); } while(q.size() != 1){ q.poll(); int a = q.poll(); q.add(a); } bw.write(q.poll() + "\n"); bw.flush(); br.close(); bw.close(); } }
문제 : https://www.acmicpc.net/problem/2164
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 11653번] 소인수분해 - Java //Wello Horld// (0) 2019.07.26 [백준 - 1018번] 체스판 다시 칠하기 - Java //Wello Horld// (0) 2019.07.26 [백준 - 1708번] 볼록 껍질 - Java //Wello Horld// (1) 2019.07.26 [백준 - 2261번] 가장 가까운 두 점 - Java //Wello Horld// (0) 2019.07.25 [백준 - 15904번] UCPC는 무엇의 약자일까? - Java //Wello Horld// (0) 2019.07.25