[백준] 10811번 바구니 뒤집기 Java 문제 풀이
2023. 3. 14. 18:01ㆍ알고리즘/백준
728x90
반응형
문제풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
interface Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int[] param = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int N = param[0], M = param[1];
int[] arr = new int[N];
for(int i=0; i<N; i++) {
arr[i] = i+1;
}
for(int idx=0; idx<M; idx++) {
String[] input = br.readLine().split(" ");
int i = Integer.parseInt(input[0])-1, j = Integer.parseInt(input[1])-1;
while(i<=j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
}
for(int i=0; i<N; i++) {
sb.append(arr[i] + " ");
}
System.out.print(sb);
}
}
둘째 줄부터는 각 줄마다 입력받은 i와 j는 바로 배열에 쓰기 위해 1씩 빼줬습니다.
arr[i] 배열 값과 arr[j] 배열 값을 바꾸고, arr[i+1] 배열 값과 arr[j-1] 배열 값을 바꾸고, arr[i+2] 배열 값과 arr[j-2] 배열 값을 바꿔주면 됩니다.
i>j일 경우 이미 다 바꿨으므로 반복을 종료합니다.
출처 : https://www.acmicpc.net/problem/10811
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2444번 별 찍기 - 7 Java 문제 풀이 (0) | 2023.03.14 |
---|---|
[백준] 9086번 문자열 Java 문제 풀이 (0) | 2023.03.14 |
[백준] 10813번 공 바꾸기 Java 문제 풀이 (0) | 2023.03.14 |
[백준] 25314번 코딩은 체육과목 입니다 Java 문제 풀이 (0) | 2023.03.13 |
[백준] 11382번 꼬마 정민 Java 문제 풀이 (0) | 2023.03.13 |