Tags
- DP
- CodingTest
- ๊ต์ฌ
- SpringBoot
- sort
- ์ ๋ ฌ
- ๊ทธ๋ํ ํ์
- Brute Force Algorithm
- ๋ฐฑํธ๋ํน
- Study
- dfs
- BFS
- stack
- ์๋ฃ๊ตฌ์กฐ
- LV2
- ๊ตฌํ
- Python
- ๋ฌธ์์ด
- PGM
- Java
- ๋๋น ์ฐ์ ํ์
- BOJ
- greedy
- ์ํ
- ์ ์๋ก
- queue
- ์๋ฎฌ๋ ์ด์
- Dynamic Programming
- ๊ทธ๋ํ ์ด๋ก
- ๊น์ด ์ฐ์ ํ์
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_14499 : ์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- N x M ์ง๋์์ ์ ์ก๋ฉด์ฒด ์ฃผ์ฌ์๋ฅผ ๊ตด๋ ค๊ฐ๋ฉฐ, ์ฃผ์ฌ์ ์๋ฉด์ ์ซ์๋ฅผ ์ถ๋ ฅํ๋ค.
- ์ฃผ์ฌ์๊ฐ ์ด๋ํ์ ๋ ๋ค์๊ณผ ๊ฐ์ ์ซ์ ๋ณํ๊ฐ ์๋ค.
- ์ด๋ํ ์ง๋์ ์นธ์ ์ซ์๊ฐ 0์ด๋ฉด, ๋ง๋ฟ์ ์๋ ์ฃผ์ฌ์ ์๋ซ๋ฉด์ ์ซ์๊ฐ ์ง๋๋ก ๋ณต์ฌ๋๋ค.
- ์ด๋ํ ์ง๋์ ์นธ์ ์ซ์๊ฐ 0์ด ์๋๋ฉด, ์ง๋์ ์ซ์๊ฐ ์ฃผ์ฌ์ ์๋ซ๋ฉด์ผ๋ก ๋ณต์ฌ๋๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์ฃผ์ฌ์์ ํ์ ์ ๋ฐ๋ฅธ ์ซ์ ์ด๋์ ๊ตฌํํ๋ค.
- ์ง๋์์ ์ด๋์ ๊ตฌํํ๋ค.
- ์ง๋๋ฅผ ๋ฒ์ด๋ ์ด๋์ ๋ฌด์ํ๊ณ , ์ด๋ ํ์ ๊ฒฝ์ฐ๋ง ์ฃผ์ฌ์ ์์ชฝ ์ซ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.*;
import java.util.StringTokenizer;
public class Main {
private static final int[][] md = {
{0, 0, 0, 0}, // ์ธ๋ฑ์ค์ฉ
{0, 4, 5, 2}, // right
{0, 2, 5, 4}, // left
{0, 1, 5, 3}, // up
{0, 3, 5, 1}, // down
};
private static final int[] dx = {0, 0, 0, -1, 1};
private static final int[] dy = {0, 1, -1, 0, 0};
private static int[] dice; // ํ์ฌ ์ฃผ์ฌ์ ์ซ์ : ์ ๋จ ์ ๋ถ ๋ ํ
public static void main(String[] args) throws IOException {
// Input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int row = Integer.parseInt(st.nextToken());
int col = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int[][] map = new int[N][M];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < M; j++) {
map[i][j] = Integer.parseInt(st.nextToken());
}
}
// Game
dice = new int[6];
st = new StringTokenizer(br.readLine());
while (st.hasMoreTokens()) {
int next = Integer.parseInt(st.nextToken());
int x = row + dx[next];
int y = col + dy[next];
if (0 <= x && x < N && 0 <= y && y < M) {
move(next);
row = x;
col = y;
if (map[row][col] == 0) {
map[row][col] = dice[5];
} else {
dice[5] = map[row][col];
map[row][col] = 0;
}
sb.append(dice[0]).append('\n');
}
}
// Output
bw.write(sb.toString());
bw.flush();
}
static private void move(int d) {
int temp = dice[md[d][0]];
dice[md[d][0]] = dice[md[d][1]];
dice[md[d][1]] = dice[md[d][2]];
dice[md[d][2]] = dice[md[d][3]];
dice[md[d][3]] = temp;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ฃผ์ฌ์ ์ด๋์ ์ํ int 2์ฐจ์ ๋ฐฐ์ด md๋ฅผ ๋ง๋ค์ด move() ๋ฉ์๋์์ ์ฌ์ฉํ๋ค.
- ์ง๋ ์ด๋์ ์ํด int ๋ฐฐ์ด dx, dy ๋ฅผ ์ฌ์ฉํ๋ค.
- ์ด๋ ์์๋ง ์ฃผ์ฌ์ ์๋จ ์ซ์๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ ์ ์ํด์ ๋ฌธ์ ๋ด์ฉ์ ๊ตฌํํ๋ค.
๐ธ end ๐ธ
- ์ด๋ ์์๋ง ์ฃผ์ฌ์ ์ซ์๋ฅผ ์ถ๋ ฅํ๋ ์กฐ๊ฑด์ ๋น ๋จ๋ ค 1ํ ํ๋ ธ๋ค.
- ๋ฌธ์ ์ ์ ์ก๋ฉด์ฒด ์ฃผ์ฌ์ ์ ๊ฐ๋๊ฐ ๋ํ๋๋๋ฐ, 1~6 ์ซ์๊ฐ ์ฐ์ฌ์์ด์ ์ด๊ธฐํ ํด์ผ ํ๋ ์ค ์์๋ค.
- ์ ๊ฐ๋๋ ๊ทธ๋ฅ ํํธ๋ฅผ ์ํด ์ ๊ณต ๋ ๊ฒ์ด๊ณ 0์ผ๋ก ์ด๊ธฐํ ํ๋๋ฐ, ๋ฌธ์ ์์๋ ๋ชจ์๋ ๋ฌธ์ฅ ์๋๊ฐ ํด์ ์ค์ญ/์คํ ์์ ์ ์ ์ฒญํ๋ ค ํ์ง๋ง ๊ธฐ์กด ๊ธ์ด ์์๋ค. ( https://www.acmicpc.net/board/view/33943 )
- ์ถฉ๋ถํ ๋ ผ์ ๋๋ ๋ฌธ์ ์๋ ๊ฒ ๊ฐ์ ์ ์ฒญ์ ์ํ๋ค.
- ์ฌ๋ฌ ์คํ/์ค์ญ/์์ฒญ ๊ธ์ ๋ณด๋ ๋ฌธ์ ๋ฅผ ๋ง๋ค ๋ ์ด๋ค ์ ์ ๊ณ ๋ คํ๋์ง, ๋ฐฑ์ค ์ฌ์ดํธ์ ์ด์ ๋ฐฉ๋ฒ ๋ฑ์ ๋ํด ์ข ๋ ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1922 : ๋คํธ์ํฌ ์ฐ๊ฒฐ (0) | 2024.04.30 |
---|---|
BOJ_2573 : ๋น์ฐ (0) | 2024.04.27 |
BOJ_1976 : ์ฌํ ๊ฐ์ (0) | 2024.04.22 |
BOJ_2580 : ์ค๋์ฟ (0) | 2024.04.19 |
BOJ_1707 : ์ด๋ถ ๊ทธ๋ํ (0) | 2024.04.13 |