Algorithm & SQL/BAEKJOON
백준 JAVA 2164 카드2
YoonJong
2022. 8. 22. 13:35
728x90
반응형
접근방법
- 하나는 버리고 하나는 다시 큐에 담는 문제 임을 확인
- 큐에 1개가 남을 때까지 해당 작업을 반복하고 1개가 남으면 출력
- n = 1일때를 따로 조건을 만들어 출력
8/22 큐와 스택을 다시 공부하면서 재풀이 했다.
조금 더 원활하게 코드를 작성할 수 있었다.
package BAEKJOON.Silver.Ⅳ;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class NO2164 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Queue<Integer> Q = new LinkedList<>();
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
Q.offer(i);
}
while(Q.size() != 1) {
Q.poll();
int num = Q.poll();
Q.offer(num);
}
System.out.println(Q.poll());
}
}
8/22 재풀이 진행
package BAEKJOON.Silver.Ⅳ;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class NO2164_2 {
public static void main(String[] args) {
Queue<Integer> q = new LinkedList<>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
q.add(i);
}
while(true) {
if(q.size() == 1) {
System.out.println(q.peek());
break;
}
q.poll();
int num = q.poll();
q.add(num);
}
}
}
728x90
반응형