자바 백준 10811번
브론즈 2
https://www.acmicpc.net/problem/10811
문제 보기
분류: 구현, 시뮬레이션
문제 풀기
배열에 1부터 N까지 순차적으로 숫자를 저장하여 초기화 한다.
i와 j를 입력받고 reverseBaskets() 메서드를 시행한다.
reverseBaskets() 메서드는 i와 j로 지정된 구간의 양 끝의 수를 서로 바꾸고, 그 다음 i + 1, j - 1 교환, i + 2, j - 2 교환하는 방식으로 while loop를 진행한다. 이때 while은 i가 j보다 작을때만 성립한다.
이렇게 M번의 경우를 모두 진행한 후 최종 바구니 번호 순서를 출력한다.
코드 보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
int[] baskets = new int[N];
for (int i = 0; i < N; i++) {
baskets[i] = i + 1;
}
for (int i = 0; i < M; i++) {
int start = sc.nextInt();
int end = sc.nextInt();
reverseBaskets(baskets, start, end);
}
for (int i = 0; i < N; i++) {
System.out.print(baskets[i] + " ");
}
}
private static void reverseBaskets(int[] baskets, int start, int end) {
while (start < end) {
int temp = baskets[start - 1];
baskets[start - 1] = baskets[end - 1];
baskets[end - 1] = temp;
start++;
end--;
}
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 11726 - 2xN 타일링 (0) | 2023.07.18 |
---|---|
[Java] 백준 풀기 2530 - 인공지능 시계 (0) | 2023.07.17 |
[Java] 백준 풀기 11536 - 줄 세우기 (0) | 2023.07.14 |
[Python] 백준 풀기 23234 - The World Responds (0) | 2023.07.13 |
[Java] 백준 풀기 1076 - 저항 (0) | 2023.07.12 |