ํฐ์คํ ๋ฆฌ ๋ทฐ
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 7. 11. 16:25[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/64061?language=java
[ํ์ด]
์คํ์ ์ด์ฉํ์ฌ ํ์ด๋ฅผ ์งํํ์์ต๋๋ค.
๋ง์ฝ board์ ํฌ๊ธฐ๊ฐ N ์ด๋ผ๋ฉด, N + 1 ํฌ๊ธฐ์ ์คํ๋ฐฐ์ด Stack์ ์ ์ธํฉ๋๋ค.
1~N๊น์ง ์ธํ๋ฝ๊ธฐ ๊ธฐ๊ณ ๋ชจ์์ stack[1] ~ stack[N] ์ ์ ์ฅํ๊ณ , ๋ฝํ ์ธํ๋ค์ ๋ด๋ ์์ stack์ stack[0]์ ์ด์ฉํฉ๋๋ค.
์คํ์ FIFO์ ํน์ฑ์ ์ง๋๊ณ ์๊ธฐ ๋๋ฌธ์ for๋ฌธ์ ํตํด ์คํ์ board๋ฐฐ์ด์ ๋ฐ์ค๋ถํฐ ์ฐจ๋ก๋ก ์ธํ number๋ฅผ ์ ์ฅํฉ๋๋ค.์ด๋, ๋ง์ฝ 0์ด๋ผ๋ฉด ์นธ์ด ๋น์ด์์ผ๋ฏ๋ก continueํด์ค๋๋ค.
๊ทธ๋ค์, moves๋ฐฐ์ด ํฌ๊ธฐ๋งํผ pick()๋ฅผ ํธ์ถํ์ฌ ์ธํ์ ํ๊ฐ์ฉ ๋ฝ์์ค๋๋ค.
pick() ํจ์์ ํ๋ผ๋ฏธํฐ๋ก ์ธํ์นธ์ index์ธ moves์ ์ซ์๋ฅผ ์ ๋ฌํ์ฌ ํด๋น์ค์์ ์ธํ์ ๋ฝ์ ์์ stack์ pushํฉ๋๋ค.
์ด๋, push๋ฅผ ์งํํ๊ธฐ์ ์์ ์์ stack์ ๋ง์ง๋ง ๊ฐ์ peekํ์ฌ ๋ง์ฝ ๋ฝํ ์ธํ๊ณผ ๊ฐ๋ค๋ฉด ์์ํ๊ณ answer๊ฐ์ ๊ฐฑ์ ํ๊ณ ๊ฐ์ง ์๋ค๋ฉด ๊ทธ๋๋ก pushํฉ๋๋ค.
[์ฝ๋]
import java.util.*;
class Solution {
private static Stack<Integer> stack[]; // 0์ ๋ฝ์์ ์ ์ฅํ๋๊ณณ, 1 ~ N์ ๋ฝ๊ธฐ ๊ธฐ๊ณ
private static int answer = 0;
public int solution(int[][] board, int[] moves) {
int N = board.length;
stack = new Stack[N + 1];
for(int i=0;i<=N;i++) {
stack[i] = new Stack<Integer>();
}
for(int i=N-1;i>=0;i--) {
for(int j=0;j<N;j++) {
if(board[i][j] == 0) {
continue;
}
stack[j+1].push(board[i][j]);
}
}
for(int i=0;i<moves.length;i++) {
pick(moves[i]);
}
return answer;
}
public static void pick(int index) {
if(stack[index].isEmpty()) {
return;
}
int p = stack[index].pop();
if(stack[0].isEmpty()) {
stack[0].push(p);
return;
}
if(stack[0].peek() == p) {
stack[0].pop();
answer += 2;
return;
}
stack[0].push(p);
}
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋ถ๋ ์ฌ์ฉ์ (0) | 2022.07.12 |
---|---|
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ํํ (0) | 2022.07.12 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ์บ์ (0) | 2022.07.07 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋๊ตด ํํ (0) | 2022.07.07 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋น๋ฐ์ง๋ (0) | 2022.07.07 |
- Total
- Today
- Yesterday
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๊ณ ๋ฆฌ์ฆ
- ๋์์ธ ํจํด
- ๋ ์์ปฌ ํ๊ฒฝ
- git
- ๋ฐฑ์ค javascript
- ๋คํธ์ํฌ
- ์นด์นด์ค ์ธํด
- fp
- map
- Baekjoon
- ์ ์ญ ๋ณ์
- JavaScript
- ์ด์์ฒด์
- ๋ฐฑ์ค
- ์ด๋ถํ์
- ์ฝ๋ฉํ ์คํธ
- ํ๋กํผํฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ํ๋กํ ์ฝ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ์๋ฐ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- TDD
- ํฌํฌ์ธํฐ
- http
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋ฐฑ์ค node.js
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |