Algorithm/나머지 문제들

[Baekjoon/JAVA] 백준 10813번 공 바꾸기

양선규 2023. 7. 15. 16:38
728x90
반응형

문제
입/출력

 

1번~N번의 바구니가 있고, 각 바구니엔 번호에 해당하는 공이 들어 있습니다.

i, j번 바구니에 들어있는 공을 바꿉니다.

이것을 M번 반복한 후, 각 바구니에 몇번 공이 들어있는지 출력하는 문제입니다.

 

 

import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		st = new StringTokenizer(br.readLine()," ");
		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());
		int arr[] = new int[n];
		
		for(int i=0; i<arr.length; i++) {
			arr[i] = i + 1;
		}
		
		for(int i=0; i<m; i++) {
			st = new StringTokenizer(br.readLine()," ");
			int j = Integer.parseInt(st.nextToken()) -1;
			int k = Integer.parseInt(st.nextToken()) -1;
			
			int num = arr[j];
			arr[j] = arr[k];
			arr[k] = num;
		}
		
		for(int i=0; i<arr.length; i++) {
			sb.append(arr[i] + " ");
		}
		
		System.out.println(sb);
		
		br.close();
	}
}

 

arr 배열에 n의 수만큼 바구니를 만든 후,

반복문을 이용해 m번 만큼 공 위치를 바꿨습니다.

마지막으로 위치변경이 끝난 배열을 출력하였습니다.

728x90
반응형