10811. 바구니 뒤집기

개붕이·2023년 12월 2일

Baekjoon

목록 보기
2/12

문제

풀이

 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String[] s = br.readLine().split(" ");
        int n = Integer.parseInt(s[0]);
        int m = Integer.parseInt(s[1]); // 공백을 기준으로 split 된 문자를 parseInt 하여 n, m에 대입
        int temp = 0; // 새로운 배열을 만들기 위해 잠시 int 값을 담아둘 임시 int 변수를 선언
        int[] basket = new int[n]; // 바구니가 n개이므로 n개의 길이를 가진 1차원 배열 선언
        for (int i = 0; i < n; i++) {
            basket[i] = i+1;
        } // 1부터 배열의 길이까지의 숫자를 대입.
        int first = 0,second = 0;
        // 각 라인에서 받아올 i와 j의 위치 값을 대입할 변수 선언
        for (int i = 0; i < m; i++) { // m회 진행해야하니 m회 만큼 반복
            s = br.readLine().split(" ");
            first = Integer.parseInt(s[0]);
            second = Integer.parseInt(s[1]);

            for (; first < second; first++) { 
                temp = basket[first-1];
                basket[first-1] = basket[second-1];
                basket[second-1] = temp;
                second--;
            } 
            // 1. temp에 basket에서 가져온 값을 대입
            // 2. first index 배열에 second를 대입
            // 3. second index 배열에 temp를 대입
            // 4. second의 값을 빼주며 다음 작업을 반복
        }
        for (int a :
                basket) {
            bw.write(a+" ");
        } // foreach문으로 출력
        bw.flush();
        br.close();
        bw.close();
profile
based on the records

0개의 댓글