https://www.acmicpc.net/problem/2164
문제바로가기
백준 스트릭 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 |
댓글