728x90
난이도 : 실버4
풀이일 : 07053
https://www.acmicpc.net/problem/2164
링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐
풀이 코드
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
scan.close();
// queue 요소 추가
LinkedList<Integer> queue = new LinkedList<>();
for (int i = 1; i <= N; i++) {
queue.addLast(i);
}
// queue 길이가 1이 될 때 까지 문제 조건 반복
while (queue.size() > 1) {
queue.pollFirst();
queue.addLast(queue.pollFirst());
}
System.out.println(queue.pollFirst());
}
}
- 1~N 까지의 숫자를 링크드리스트로 만든 큐에 추가
- 큐의 요소가 한 개 남을 때 까지 문제의 조건 반복
- LinkedList.addLast(temp) : 링크드리스틔 맨 뒤에 temp 요소 추가
- LinkedList.pollFirst() : 링크드리스트의 맨 앞 요소 제거 및 리턴
느낀점
어제에 이어 링크드리스트 문제를 풀어보았다. 익숙하게 느껴질 때까지 조금 반복하고 넘어가야지.
파이썬에서 큐 문제들을 좋아했어서 괜찮게 느껴지는 것 같기도 한데, 시간 날 때 자료구조들도 하나씩 정리해봐야겠다.
네 달 전에 파이썬으로 풀고 시간초과로 틀렸었던데 지금 한 번에 풀어서 좀 기분 좋은 기록
'알고리즘 > 🥈 실버' 카테고리의 다른 글
백준 1021 회전하는 큐 자바 풀이 (0) | 2023.07.08 |
---|---|
백준 2161 카드1 자바 풀이 (0) | 2023.07.07 |
백준 1158 요세푸스 문제 자바 풀이 (0) | 2023.07.03 |
백준 11047 동전 0 파이썬 풀이 (0) | 2023.05.02 |
백준 1463 1로 만들기 파이썬 풀이 (0) | 2023.05.01 |