본문 바로가기
개발/알고리즘

[백준1021][Java] 회전하는 큐

by JeonJaewon 2020. 4. 29.

오랜만에 자바

 

1. 왜 변수가 오는 자리에 상수를?

21번 줄의 list.size() 대신 N을 사용했다가 왜 안되지? 이러고 있었다.

리스트 앞/뒤로 추가 삭제가 일어나기 때문에 N을 사용해선 안된다.

 

2. 왜 입력 다 받고 코딩 줄줄줄 하려 하는가?

습관처럼 앞에서 입력을 다 받아야 한다고 생각하지 말자. 유연하게 풀기

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package ps;
 
import java.util.LinkedList;
import java.util.Scanner;
 
public class Main {
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        LinkedList<Integer> list = new LinkedList<Integer>();
        int N, M;
        N = sc.nextInt();
        M = sc.nextInt();
        for (int i = 1; i <= N; i++) {
            list.add(i);
        }
        int ans = 0;
        int num = 0;
        for (int i = 0; i < M; i++) {
            num = sc.nextInt();
            while (num != list.get(0)) {
                if (list.indexOf(num) <= list.size() / 2) {
                    int first = list.getFirst();
                    list.removeFirst();
                    list.addLast(first);
                } else {
                    int last = list.getLast();
                    list.removeLast();
                    list.addFirst(last);
                }
                ans++;
            }
            list.removeFirst();
        }
        System.out.println(ans);
    }
 
}
 
cs

 

댓글