Algorithm/[BOJ]
[Java] 백준 10813번 : 공 바꾸기
정보통신 고심이
2024. 3. 11. 15:20
https://www.acmicpc.net/problem/10813
접근 방법
1) 공 넣기 문제와 비슷하게 N(바구니 개수), M (바구니 바꾸는 횟수)를 첫줄에 입력 받는다.
2) M번 만큼 반복문 반복
3) 배열 초기값 설정
4) 임시 변수(temp)로 값 섞기
- 바구니 번호(1부터 시작)와 배열 번호(0부터 시작) 주의할 것
정답 코드
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];
// 배열 초기값 설정 (바구니 번호 == 배열 초기값)
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());
int temp = 0;
temp = arr[i-1];
arr[i-1] = arr[j-1];
arr[j-1] = temp;
}
for(int i=0; i<arr.length; i++){
bw.write(String.valueOf(arr[i]));
bw.write(" ");
}
br.close();
bw.flush();
bw.close();
}
}
처음에 배열 초기값 설정하는 부분을 작성하지 않아 0 0 0 0 0 이 출력 됐었다