본문 바로가기

백준

[JAVA] 백준 10813.

728x90
반응형
SMALL


제목 : 공 바꾸기 (no.10813)


 



문제 출처

10813번: 공 바꾸기 (acmicpc.net)

 

10813번: 공 바꾸기

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이

www.acmicpc.net


문제

도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다.

도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는 공을 바꿀 바구니 2개를 선택하고, 두 바구니에 들어있는 공을 서로 교환한다.

공을 어떻게 바꿀지가 주어졌을 때, M번 공을 바꾼 이후에 각 바구니에 어떤 공이 들어있는지 구하는 프로그램을 작성하시오.


Input

첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주어진다.

둘째 줄부터 M개의 줄에 걸쳐서 공을 교환할 방법이 주어진다. 각 방법은 두 정수 i j로 이루어져 있으며, i번 바구니와 j번 바구니에 들어있는 공을 교환한다는 뜻이다. (1 ≤ i ≤ j ≤ N)

도현이는 입력으로 주어진 순서대로 공을 교환한다.

 

Output

1번 바구니부터 N번 바구니에 들어있는 공의 번호를 공백으로 구분해 출력한다.



Ex.Input 1

5 4
1 2
3 4
1 4
2 2

Ex.Output 1

3 1 4 2 5


Code

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
    	Scanner xx = new Scanner(System.in);
    	int index = xx.nextInt();
        int deep = xx.nextInt();
        int[] basket = new int[index];
        
        // 바구니부터 만들기
        for (int i = 0; i < index; i++) {
        	basket[i] = i+1;
		}
        
        // 바구니 숫자 바꾸기
        for (int i = 0; i < deep; i++) {
			int num1 = xx.nextInt(); 
			int num2 = xx.nextInt();
			
			// 인덱스 범위 내의 요소를 역순으로 바꾸기
            reverseArray(basket, num1 - 1, num2 - 1);
        }
        
        // 결과물 출력
        for (int i = 0; i < index; i++) {
            System.out.print(basket[i] + " ");
        }
    }
    // 숫자 바꾸기 매소드
    public static void reverseArray(int[] array, int startIndex, int endIndex) {
        int temp = array[startIndex];
        array[startIndex] = array[endIndex];
        array[endIndex] = temp;
    }
}

 

 

 예전 10811문제 에서 잘못이해한 문제가 바로 이문제였다(이럴거면 이거먼저 풀었지..)

 

 그때의 기억을 더듬어서 문제를 풀었다.(ctrl+c v)

 

 입력받은 인덱스 값에 해당하는 값을 서로 교환만해주면 되기에 생각보다 간단한 문제이다.

 

 고로 예전 10811문제 에서 while문을 제거하고 인덱스 값들 ++ -- 하는걸 제거해주니 바로 완료하게 되었다.

 

 

 10811문제 링크는 아래에 걸어놓도록 할테니 들어가서 참고하길 바란다.

 

 

 

[JAVA] 백준 10811. (tistory.com) 

 

[JAVA] 백준 10811.

제목 : 바구니 뒤집기 (no.10811) 문제 출처 10811번: 바구니 뒤집기 (acmicpc.net) 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적

hacs2772.tistory.com

 

 

 

티스토리와 깃허브 홈
 

학스의 개발일지

안녕하세요 일상과 코딩공부를 올리고 있는 JAVA개발자 학스입니다. 저는 주로 JAVA, jQuery, PostgreSQL, HIVE을 다루고 있고 코딩테스트공부도 병행중입니다. 제 깃허브 주소인 https://github.com/hacs2772에

hacs2772.tistory.com

 

 

hacs2772 - Overview

개발왕 학스. hacs2772 has 8 repositories available. Follow their code on GitHub.

github.com

 

 

 

오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.
728x90
반응형
LIST

'백준' 카테고리의 다른 글

[JAVA] 백준 1316.  (1) 2023.10.06
[JAVA] 백준 3052.  (0) 2023.10.05
[JAVA] 백준 10951.  (2) 2023.10.04
[JAVA] 백준 10811.  (0) 2023.09.27
[JAVA] 백준 10810.  (0) 2023.09.26