https://programmers.co.kr/learn/courses/30/lessons/64061
์ฝ๋
import java.util.Stack;
class Solution {
public static int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> s = new Stack<Integer>();
for(int i=0; i<moves.length; i++) {
for(int j=0; j<board.length; j++) {
/*
* ํด๋น ์นธ์ ์ธํ์ด ์กด์ฌํ๋๊ฒฝ์ฐ
* ↓ ์๋๋ก ๋ด๋ ค๊ฐ๋ฏ๋ก ํ์ ๊ฐ์ด ๊ณ์ ๋ฐ๊ปด์ผํจ (0,0), (1,0), (2,0) ...
* moves๋ฐฐ์ด์ ์๋ ์์๋ฅผ board[][] ๋ฐฐ์ด์ '์ด' ๊ฐ์ ๋ฃ์ด์ ๋น๊ต
* ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ฏ๋ก -1
*/
if(board[j][moves[i]-1] != 0) {
// ์คํ์ด ๋น์ด์๋๊ฒฝ์ฐ -> ํด๋น ์ธํ ๋ฃ๊ธฐ
if(s.isEmpty())
s.push(board[j][moves[i]-1]);
// ์คํ์ด ๋น์ด์์ง ์๋๊ฒฝ์ฐ -> ์ธํ์ด ๋์ผํ์ง ์๋์ง ๋น๊ต
else {
// ์ธํ์ด ๋์ผํ๋ฉด ์ ๊ฑฐ ํ ์ฌ๋ผ์ง ์ธํ๊ฐ์ +2
if(s.peek() == board[j][moves[i]-1]) {
s.pop();
answer += 2;
}
// ์ธํ์ด ๋์ผํ์ง ์์ผ๋ฉด ์คํ์ ์ธํ ๋ฃ๊ธฐ
else {
s.push(board[j][moves[i]-1]);
}
}
// ํด๋น ์์
๋๋ ํ์๋ ์ธํ์ ๋นผ๋์ผ๋ฏ๋ก 0์ผ๋ก ๋ง๋ ๋ค.(์ธํ์ด ์๋ค๋ ํ์)
board[j][moves[i]-1] = 0;
break;
}
}
}
return answer;
}
}
ํ์ด
์ ๋ฌธ์ ์์๋ถํฐ ํ๊ฐ์ฉ ์ ๊ฑฐ๋๊ณ , ๋ฒฝ์ด ๋งํ์์ด์ Stack์ ํ์ฉํ๋ผ๊ณ ํ๋ ๊ฒ ๊ฐ์์ ์คํ์ ์ฌ์ฉํ๋ค.
๋ฌธ์ ์ ๋ง๊ฒ ๊ทธ๋๋ก ๊ตฌํํ๊ณ , ์ค๋ช ์ ์ฃผ์์ผ๋ก ๋ค ๋ฌ์๋ค.
๊ฐ๋ตํ ์ค๋ช & ํ์ด๋ฅผ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
board[][] 2์ฐจ์ ๋ฐฐ์ด์ ์ธํ์ ์ข ๋ฅ๊ฐ ์ซ์๋ก ์ฃผ์ด์ง๋ค. 0 ~ 100
moves[] 1์ฐจ์ ๋ฐฐ์ด์๋ ๋ช๋ฒ์งธ ํ์ ์ธํ์ ๋นผ์ฌ๊ฑด์ง ๋ํ๋ธ๋ค.
1) moves[] ๋ฐฐ์ด์ ์๋ ์์์ค board[][]์ ๊ฐ์ฅ ์์ ์๋ ์ธํ์ ์ ๊ฑฐํ๋ค.
(board[][] ๋ฐฐ์ด์ ํ์ ๊ธฐ์ค์ผ๋ก ํ๋จ์ ํด์ผํ๊ธฐ ๋๋ฌธ์ moves[]๋ฐฐ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ↓ ์๋๋ก ๋น๊ตํ๋ฉฐ ํ์ํด์ผํ๋ค. ๊ฐ์ด 0์ผ๊ฒฝ์ฐ ์ธํ์ด ์๋๊ฑฐ๋ก ํ๋จ. ์ฃผ์ ์ฐธ๊ณ )
2) ์คํ์ด ๋น์ด์์ผ๋ฉด ์คํ์ ์๊ณ ,
3) ์คํ์ด ๋น์ด์์ง ์์ผ๋ฉด ์คํ์ ์์์ง ์คํ์์ ์ ๊ฑฐํ ์ง๋ง ํ๋จํด์ฃผ๋ฉด ๋๋ค.
- ํ์ฌ ์คํ์ ์์ธ ์ธํ๊ณผ ๋์ผํ ์ธํ์ผ ๊ฒฝ์ฐ -> ์คํ์์ ์ ๊ฑฐ ํ ์ ๊ฑฐํ ์ธํ ๊ฐฏ์ +2
- ํ์ฌ ์คํ์ ์์ธ ์ธํ๊ณผ ๋ค๋ฅธ ์ธํ์ผ ๊ฒฝ์ฐ -> ์คํ์ ๊ทธ๋๋ก ์์ผ๋ฉด ๋๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Codeforces] 1136A: Nastya is Reading a Book (0) | 2020.04.06 |
---|---|
[Codeforces] 1093A: Dice Rolling (0) | 2020.04.02 |
[๋ฐฑ์ค] 9576๋ฒ: ์ฑ ๋๋ ์ฃผ๊ธฐ(๊ทธ๋ฆฌ๋) (0) | 2020.03.31 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)ํ๊ฒ๋๋ฒ(dfs) (0) | 2020.03.30 |
[Codeforces] 1270A: Card Game (0) | 2020.03.29 |
๋๊ธ