Java/백준
[백준] 10813번 : 공바꾸기
berryberries
2023. 12. 4. 22:37
풀이
import java.util.Scanner;
public class Main05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//바구니 개수 1~N개
int N = sc.nextInt();
int [] array = new int[N];
// 공을 바꾸는 횟수
int M = sc.nextInt();
//임시저장 공간 변수 = temp
int temp;
// 바구니 공 초기화
for(int i=0; i<array.length;i++) {
array[i]= i+1;
}
for(int j=0; j<M; j++) {
// I번 바구니와 J번 바구니 선택
int I = sc.nextInt();
int J = sc.nextInt();
// 해당 바구니들 교환
temp = array[I-1];
array[I-1] = array[J-1];
array[J-1] = temp;
}
for(int k=0;k<array.length;k++) {
System.out.print(array[k] + " ");
}
}
}
●첫번째 줄에 N과 M이 주어진다
→ N : 바구니의 개수, M : 공을 교환하는 횟수
● 두번째 줄부터 N번 바구니들끼리 교환한다
→ N 은 배열로 입력해야 한다.
→ I번 바구니와 J번 바구니 입력
● 교환한다.
→ temp : 임시저장 공간변수, 자바에서는 temp 라고 한다.
교환한다는 말을 듣고 정처기에서 공부했던 코드가 생각나서 어떤 알고리즘을 사용해야 하는지는 바로 알았다.
그런데 바구니에 해당 바구니 번호와 같은 번호의 공이 들어있다는 말을 놓쳐서 계속 정답이 안나왔던 문제...
더보기
* 두 수의 교환
temp = array[I-1];
array[I-1] = array[J-1];
array[J-1] = temp;
1. temp라는 공간변수에 array[ I -1 ]를 넣어준다.
2. 그리고 빈공간이 된 array[ I -1 ]에 array[ J -1 ]을 넣어준다.
3. array[ J -1 ]가 빈공간이 되면 temp를 넣어준다.