본문 바로가기

백준/브론즈 탈출하기

[Java] 백준 10811번 : 바구니 뒤집기

 

 

접근 방법

배열 동적 할당이 필요한가? 했는데

반복문 i++ j--를 해서 푸는 방법이 있었다

사람들 진짜 똑똑한거 같다

 

정답코드

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());
        
        int[] arr = new int[N];
        int temp = 0;
        // 배열 초기값 설정 (바구니 번호 == 배열 초기값)
        for(int i=0; i<N; i++){
            arr[i] = i+1; // 1~N
        }
        
        for(int l=1; l<=M; l++){
            st = new StringTokenizer(br.readLine());
            int i = Integer.parseInt(st.nextToken());
            int j = Integer.parseInt(st.nextToken());
            
            while(i<j) {
               temp = arr[i-1];
               arr[i-1] = arr[j-1];
               arr[j-1] = temp;
               i++;
               j--;
            }
        }
        
        for(int i=0; i<arr.length; i++){
                bw.write(String.valueOf(arr[i]));
                bw.write(" ");
         }
         br.close();
         bw.flush();
         bw.close();
        }
    
}