https://www.acmicpc.net/problem/1021
1021번: 회전하는 큐
첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가
www.acmicpc.net
해석 및 팁
이 문제는 LinkedList를 사용하면 됩니다. 먼저 list에 1부터 n꺄지 저장한 후에 찾고자 하는 값의 인덱스를 구해서 전체 길 위의 절반보다 작으면 2번 연산을 수행하고 크면 3번 연산을 수행해서 총횟수를 출력하면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
LinkedList<Integer> list = new LinkedList<>();
int count = 0;
int n = sc.nextInt();
int m = sc.nextInt();
for(int i = 1; i <= n; i++) {
list.add(i);
}
for(int i = 0; i < m; i++) {
int num = sc.nextInt();
int index = list.indexOf(num);
if(num == list.peek()) {
list.remove();
continue;
}
if(index <= list.size()/2) {
while(num != list.getFirst()) {
list.addLast(list.removeFirst());
count++;
}
}
else {
while(num != list.getFirst()) {
list.addFirst(list.removeLast());
count++;
}
}
list.removeFirst();
}
System.out.println(count);
}
}
'백준' 카테고리의 다른 글
백준 2003 수들의 합 2(Java) (0) | 2023.01.26 |
---|---|
백준 18258 큐 2(Java) (0) | 2023.01.26 |
백준 1620 나는야 포켓몬 마스터 이다솜(Java) (1) | 2023.01.26 |
백준 2217 로프(Java) (0) | 2023.01.26 |
백준 4949 균형잡힌 세상(Java) (0) | 2023.01.25 |