블로그 이전, 2023. 5. 1. 07:27 에 작성했던 글입니다.

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[] basket = new int[n];
for(int k=0; k<n; k++){
basket[k]=k+1;
}
for(int k=0; k<m; k++) {
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken())-1;
int j = Integer.parseInt(st.nextToken())-1;
while(i<j){
int tmp=basket[i];
basket[i++]=basket[j];
basket[j--]=tmp;
}
}
for(int k=0; k<basket.length; k++){
bw.write(basket[k]+" ");
}
br.close();
bw.flush();
bw.close();
}
}
2.내가 한 풀이
for(int k=0; k<m; k++) {
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken())-1;
int j = Integer.parseInt(st.nextToken())-1;
while(i<j){
int tmp=basket[i];
basket[i++]=basket[j];
basket[j--]=tmp;
}
}
int[] basket={1 2 3 4}; 들어있을때 (배열 개수 짝수)
인덱스는 0 1 2 3
인덱스 번호를 비교한다.
0<3 이면 1 4 바꿈
2<3 이면 2 3 바꿈
3<2 false -> while문 탈출
int[] basket={1,2,3,4,5}; 들어있을때 (배열 개수 홀수)
인데스는 0 1 2 3 4
위와 같은 방법으로 비교하면
1<3이면 2 4 바꾸고
2<2 false -> while문 탈출
인덱스를 비교해서 공을 바꾼다
'알고리즘 리뷰' 카테고리의 다른 글
| 백준 JAVA 2525 오븐시계 리뷰 (0) | 2023.08.29 |
|---|---|
| 백준 JAVA 10810 공 넣기 리뷰 (0) | 2023.08.29 |
| 백준 JAVA 10813 공 바꾸기 리뷰 (0) | 2023.08.29 |
| 백준 JAVA 3009 네 번째 점 리뷰 (0) | 2023.08.29 |
| 백준 JAVA 11943 파일 옮기기 리뷰 (0) | 2023.08.29 |