ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준] 1021 회전하는 큐 #JAVA
    Algorithm Solving/BAEKJOON 2021. 1. 31. 14:34

    BAEKJOON [1021] 회전하는 큐?


    코드


    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.LinkedList;
    import java.util.StringTokenizer;
    
    public class Main {
    
    	public static void main(String[] args) throws IOException{
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		
    		int n,m;
    		int target, targetIdx;
    		int moveCnt=0;
    		StringTokenizer st;
    		
    		st = new StringTokenizer(br.readLine());
    		
    		n = Integer.parseInt(st.nextToken());
    		m = Integer.parseInt(st.nextToken());
    		
    		st = new StringTokenizer(br.readLine());
    		
    		
    		LinkedList<Integer> lnk = new  LinkedList<Integer>();
    		for (int i = 1; i <= n; i++) {
    			lnk.add(i);
    		}
    		
    		for (int i = 0; i < m; i++) {
    			target = Integer.parseInt(st.nextToken());
    			
    			targetIdx = lnk.indexOf(target);
    			
    			//2번으로 돌릴지 3번으로 돌릴지 결정하자
    			if(targetIdx <= lnk.size()/2) { //2번으로 돌리자. 
    				for (int j = 0; j < targetIdx; j++) {
    					int temp = lnk.pop();
    					lnk.add(temp);
    					moveCnt++;
    				}
    				
    			}else {//3번으로 돌리자.
    				for (int j = 0; j < lnk.size()-targetIdx; j++) {
    					int temp = lnk.pollLast();
    					lnk.push(temp);
    					moveCnt++;
    				}
    				
    			}
    			
    			lnk.pop();
    			
    		}
    		
    		System.out.println(moveCnt);
    	}
    
    }
    

     

     

    풀이


    • 덱 말고 연결리스트를 사용했다. 
    • 덱은 왼쪽, 오른쪽으로 이동할지 최적의 방향을 찾기가 어려웠다.
    • indexOf 함수로 내가 찾으려는 값의 위치를 파악하여 좌우 이동을 결정한다.

     

     


    잘못된 코드나 내용이 있다면 댓글을 남겨주세요. 즉시 수정하도록 하겠습니다! :)

     

     

    'Algorithm Solving > BAEKJOON' 카테고리의 다른 글

    [해커랭크] Two Strings #JAVA  (0) 2021.02.01
    [백준] 1300 K번째 수 #JAVA  (0) 2021.02.01
    [백준] 6198 옥상 정원 꾸미기 #JAVA  (0) 2021.01.31
    [백준] 2493 탑 #JAVA  (0) 2021.01.30
    [백준] 1874 스택 수열 #JAVA  (0) 2021.01.30

    댓글