728x90
반응형
https://www.acmicpc.net/problem/10813
1. 문제
2. 분석
첫째 줄 입력 값 N은 출력할 값의 총 길이, M은 입력 횟수
둘째 줄 입력 값 부터 i와 j는 각각 교환할 인덱스 값
예제로 예시 풀이를 하면 출력 값의 길이는 5(N)이고 4번(M)의 입력 값이 입력된다.
실제 인덱스로 사용을 위해 i, j 는 -1을 해준다.
초기 값 => 1 2 3 4 5
첫번째로 0(i) ~ 1(j) 인덱스를 바꿔준다. => 2 1 3 4 5
두번째로 2(i) ~ 3(j) 인덱스를 바꿔준다. => 2 1 4 3 5
세번째로 0(i) ~ 3(j) 인덱스를 바꿔준다. => 3 1 4 2 5
네번째로 1(i) ~ 1(j) 인덱스를 바꿔준다. => 3 1 4 2 5
결과 값 => 3 1 4 2 5
728x90
반응형
3. 풀이
BufferedReader, BufferedWriter, StringTokenizer를 사용하여 풀이 진행
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
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<N; i++) {
arr[i] = i+1;
}
for(int i=0; i<M; i++) {
st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int tmp = arr[a-1];
arr[a-1] = arr[b-1];
arr[b-1] = tmp;
}
br.close();
for(int i : arr) {
bw.write(i+" ");
}
bw.flush();
bw.close();
}
}
GitHub
관련 포스팅
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 11718번 : 그대로 출력하기 - JAVA 풀이 (0) | 2024.07.31 |
---|---|
[백준] 10810번 : 공 넣기 - JAVA 풀이 (0) | 2024.07.25 |
[백준] JAVA 입출력 정리 (2) | 2024.07.22 |