본문 바로가기
acmicpc/Java

[Java] 백준 2164 카드2

by 952_hi 2022. 3. 27.

 

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

문제바로가기

 

2164번: 카드2

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

www.acmicpc.net


백준 스트릭 2++ 100% 도전기

문제접근방법

1) 카드를 세워서 처음 맨위카드는 버리고 그다음 카드는 맨뒤로 보낸다라는 글을 읽고 앞뒤 => 큐를 써야겠다

2) 반복문을 통해 뽑아 버리고 맨뒤로 보내고를 반복했다.

 

느낀점

크게 어렵지 않은데 다른사람들이 푼 숏코딩을 보니 더좋은 방법이 많아서 최적화를 더할수 있을것 같았다.

 

 

import java.io.*;
import java.util.*;
public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		Queue<Integer> q = new LinkedList<Integer>();
		for(int i=1;i<=n;i++) q.offer(i);
		while(q.size()!=1) {
			q.poll();
			q.offer(q.poll());
		}
		System.out.println(q.peek());
	}
}

 

'acmicpc > Java' 카테고리의 다른 글

[JAVA] 백준 1929 소수 구하기  (0) 2022.03.28
[JAVA] 17404 RGB거리 2  (0) 2022.03.27
[JAVA] 백준 4153 직각삼각형  (0) 2022.03.24
[JAVA] 2206 벽 부수고 이동하기  (0) 2022.03.24
[JAVA] 2805 나무 자르기  (0) 2022.03.23

댓글