Notice
Recent Posts
Recent Comments
Link
HwangHub
[완전탐색/자바] 코드트리 IL. 컨베이어 벨트 본문
문제 해석
위 문제는 완탐 시뮬레이션 문제로 이해할 수 있다. 사실 이 문제는 로직 구성은 간단한데 문제를 잘 읽어야 한다는 게 포인트인 것 같다. 숫자들이 두 줄의 컨베이어 벨트 위에 있는 것으로 정의되는데, 아래 줄 숫자들은 반전되어 보여진다는 게 일종의 장애물 포인트이다. 이를 고려하지 않고 ver1.0의 로직을 구성해서, 그 이후에 적용할 때에는 기존 입력이나 출력을 뒤집어서 수행하여 기존 로직을 사용할 수 있도록 하였다.
문제 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 컨베이어벨트 {
private static int n, t;
private static int[][] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
t = Integer.parseInt(st.nextToken());
arr = new int[2][n];
for (int i = 0; i < 2; i++) {
st = new StringTokenizer(br.readLine());
if (i == 0) {
for (int j = 0; j < n; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
} else if (i == 1) {
for (int j = n-1; j >= 0; j--) {
arr[i][j] = Integer.parseInt(st.nextToken());
}
}
}
/*
* t loop
* */
for (int i = 0; i < t; i++) {
int temp1 = arr[1][0];
int temp2 = arr[0][n-1];
for (int j = 0; j < 2; j++) {
if (j == 0) {
for (int k = n-2; k >= 0; k--) {
arr[j][k+1] = arr[j][k];
}
arr[0][0] = temp1;
} else if (j == 1) {
for (int k = 0; k < n - 1; k++) {
arr[j][k] = arr[j][k+1];
}
arr[1][n-1] = temp2;
}
}
}
for (int i = 0; i < 2; i++) {
if (i == 0) {
for (int j = 0; j < n; j++) {
System.out.print(arr[i][j] + " ");
}
} else if (i == 1) {
for (int j = n-1; j >= 0; j--) {
System.out.print(arr[i][j] + " ");
}
}
System.out.println();
}
}
}
'workspace > 알고리즘' 카테고리의 다른 글
★[BFS/자바] 코드트리 IL. 돌 잘 치우기 (틀림, 나중에 다시 풀어보자) (0) | 2023.10.07 |
---|---|
[BFS/자바] 코드트리 IL. K번 최댓값으로 이동하기 (0) | 2023.10.03 |
[완전탐색/자바] 코드트리 IL.양수 직사각형의 최대 크기 (0) | 2023.09.29 |
[완전탐색/자바] 코드트리 IL. 행복한 수열의 개수 (0) | 2023.09.28 |
[백트래킹/자바] 코드트리 IL. N개중에 M개 고르기 (1) | 2023.09.26 |
Comments