본문 바로가기
알고리즘/[백준] JAVA

[백준] 10811 바구니 뒤집기

by 코딩맛집 2023. 5. 2.

https://www.acmicpc.net/problem/10811

 

10811번: 바구니 뒤집기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2

www.acmicpc.net

 

방법1

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer str = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(str.nextToken());
        int m = Integer.parseInt(str.nextToken());

        //바구니 만들기
        Integer[] bascket = new Integer[n];

        for(int i = 0; i < n; i++){
            bascket[i] = i+1;
        }

        //바구니 순서 바꾸기
        for(int i = 0; i<m; i++){
            StringTokenizer str1 = new StringTokenizer(br.readLine());
            int fir = Integer.parseInt(str1.nextToken());
            int sec = Integer.parseInt(str1.nextToken());

            if(fir < sec){
                int[] temp = new int[sec-fir+1];
                //temp에다가 역순 범위에 값 넣어주고
                for(int j = 0; j<temp.length; j++){
                    temp[j] = bascket[sec-1-j] ;
                }
                //temp
                for(int k = 0; k<sec-fir+1; k++){
                    bascket[fir+k-1] = temp[k];
                }
            }

        }
        //출력
        for(int l=0;l<n; l++){
            System.out.print(bascket[l] + " ");
        }
    }
}

 

'알고리즘 > [백준] JAVA' 카테고리의 다른 글

[백준] 9086 문자열  (0) 2023.05.02
[백준] 27866 문자와 문자열  (0) 2023.05.02
[백준] 3052 나머지  (0) 2023.05.02
[백준] 10813 공 바꾸기  (0) 2023.04.28
[백준] 2562 최댓값  (0) 2023.04.28