반응형
접근 방법)
첫 번째 줄에 배열의 크기와 배열의 값을 서로 바꾸는 반복작업을 진행할 횟수를 알려주기 때문에 정말 쉽게 풀 수 있는 문제이다.
N의 크기의 배열을 생성하고 for 문안에서 배열의 값을 서로 바꾸는 반복 작업을 M회 반복하면 된다.
그럼 for문 안에서 배열 값을 서로 바꾸는 코드를 작성하기 위해 잠시 배열 값을 담아둘 수 있는 int형 변수가 필요하다.
▷ 배열 값 서로 바꾸기
int k 를 이용하여 쉽게 해결할 수 있다.
for(int a = 0; a < n; a++){
int i = s.nextInt();
int j = s.nextInt();
// Scanner s = new Scanner(System.in)
int k = g[i-1];
g[i-1] = g[j-1];
g[j-1] = k;
}
g [i-1]의 배열 값을 k에 담아두고 g [i-1]에는 g [j-1]의 값을 할당한다.
그리고 g [j-1]에는 g [i-1] 값이었던 k를 할당함으로써 두 배열의 값을 서로 바꿀 수 있다.
Scanner와 BufferedReader&BufferedWriter를 이용하여 2가지 방법으로 코드를 작성해 보자.
정답 코드 1)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int m = s.nextInt();
int n = s.nextInt();
int[] g = new int[m];
for(int x = 0; x < m; x++){
g[x] = x+1;
}
for(int a = 0; a < n; a++){
int i = s.nextInt();
int j = s.nextInt();
int k = g[i-1];
g[i-1] = g[j-1];
g[j-1] = k;
}
for(int b = 0; b < m; b++){
System.out.print(g[b]+" ");
}
}
}
정답 코드 2)
import java.io.*;
import java.util.StringTokenizer;
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 g[] = new int[n];
int m = Integer.parseInt(st.nextToken());
int z;
for(int c = 0; c < n; c++){
g[c] = c+1;
}
for(int a = 0; a < m; a++){
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
z = g[i-1];
g[i-1] = g[j-1];
g[j-1] = z;
}
for(int b = 0; b < n; b++){
bw.write(g[b]+" ");
}
br.close();
bw.flush();
bw.close();
}
}
반응형
'Baekjoon 자바 코드 > 1차원 배열' 카테고리의 다른 글
[백준] 3052번 나머지 풀이 코드 (Java 자바) (0) | 2024.08.02 |
---|---|
[백준] 5597번 과제 안 내신 분..? 풀이 코드 (Java 자바) (0) | 2024.07.31 |
[백준] 10810번 공 넣기 풀이 코드 (Java 자바) (0) | 2024.07.29 |
[백준] 2562번 최댓값 풀이 코드 (Java 자바) (1) | 2024.07.23 |
[백준] 10818번 최소, 최대 풀이 코드 (Java 자바) (0) | 2024.07.22 |