블로그 이전, 2023. 5. 4. 14:56 에 작성했던 글입니다.

1.내가 작성한 코드
import java.io.*;
import java.util.StringTokenizer;
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[] narr = new int[n];
for(int i =0; i<n; i++){
narr[i]=i+1;
}
for(int p =0; p<m; p++) {
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken()) - 1;
int j = Integer.parseInt(st.nextToken()) - 1;
int k = Integer.parseInt(st.nextToken()) - 1;
int jk = j - k;
int[] tmp = new int[k - i];
int begini = i;
for (int q = 0; q < tmp.length; q++) {
tmp[q] = narr[begini++];
}
for (int q = 0; q < jk + 1; q++) {
narr[i++] = narr[k++];
}
for (int q = 0; q < tmp.length; q++) {
narr[i++] = tmp[q];
}
}
for (int q=0; q<narr.length; q++){
bw.write(narr[q]+" ");
}
br.close();
bw.flush();
bw.close();
}
}
2.리뷰
tmp를 이용해서 수 바꾸는 걸 이용했다.
i부터 k-1까지 tmp 배열에 넣고
k부터 j를 i부터 k-1에 넣고
tmp배열을 k부터 j에 넣으면 된다.
i,j,k를 인덱스로 활용하기 위해 -1해준다.
이전 문제와 비슷하다.
'알고리즘 리뷰' 카테고리의 다른 글
| 백준 JAVA 1182번 부분수열의 합 리뷰 (0) | 2023.08.30 |
|---|---|
| 백준 JAVA 11653번 소인수 분해 (0) | 2023.08.30 |
| 백준 JAVA 2525 오븐시계 리뷰 (0) | 2023.08.29 |
| 백준 JAVA 10810 공 넣기 리뷰 (0) | 2023.08.29 |
| 백준 JAVA 10811 바구니 뒤집기 리뷰 (0) | 2023.08.29 |