๐ฃ ๋ฌธ์ ์ดํด
์ธํ์ ์ง์ด ์ฌ๋ฆด ์์น์์ 0์ด ์๋ ์ซ์๊ฐ ๋์ฌ ๋๊น์ง ์๋ ๋ฐฉํฅ์ผ๋ก ํ์ํ๋ค.
๋ฐ๋ฅ์ ๋์ฐฉํ๊ธฐ ์ ์ ์ธํ์ ๋ฐ๊ฒฌํ๋ฉด ํด๋น ์์น๋ฅผ 0์ผ๋ก ๋ง๋ค๊ณ ๋ฐ๊ตฌ๋์ ๋ด๋๋ค.
๋ง์ฝ, ์ด์ ์ ๋ฐ๊ตฌ๋์ ๋ฃ์ ์ธํ๊ณผ ๊ฐ๋ค๋ฉด, answer๋ฅผ 2 ์ฆ๊ฐํ๊ณ , ๋ฐ๊ตฌ๋์ ๊ทธ ์ธํ์ ์ ๊ฑฐํ๋ค.
๐ญ ํ์ด ๊ณผ์
์์ฑ ์ธ์ด: Python3
def solution(board, moves):
answer = 0
stack = []
length = len(board[0])
for j in moves:
for i in range(length):
if board[i][j - 1] != 0:
if len(stack) != 0 and stack[-1] == board[i][j - 1]:
answer += 2
stack.pop()
else:
stack.append(board[i][j - 1])
board[i][j - 1] = 0
break
return answer
์์ฑ ์ธ์ด: C++
/*
0 0 0 0 0
0 0 1 0 3
0 2 5 0 1
4 2 4 4 2
3 5 1 3 1
1 5 3 5 1 2 1 4
*/
#include <iostream>
#include <vector>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves) {
vector<int> bucket;
int crane, doll, answer = 0;
for (int colNum = 0; colNum < moves.size(); ++colNum) {
crane = moves[colNum]-1; // ํฌ๋ ์ธ์ด ์ด๋ํ๋ ์ด ๋ฒํธ
for (int rowNum = 0; rowNum < board.size(); ++rowNum) { // ํ ๋ฒํธ
doll = board[rowNum][crane]; // ์ ํ๋ ์ธํ
if (doll == 0) { // ๊ณต๋ฐฑ์ ํจ์ค,
continue;
} else {
if (bucket.size() != 0 && bucket.back() == doll) { // ์ด์ ์ ๋ฃ์ ์ธํ๊ณผ ํ์ฌ ์ธํ์ด ๊ฐ์ ๊ฒฝ์ฐ
answer += 2;
bucket.pop_back();
}else {
bucket.push_back(doll); // ์ด์ ์ ๋ฃ์ ์ธํ๊ณผ ํ์ฌ ์ธํ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ
}
board[rowNum][crane] = 0;
break;
}
}
}
return answer;
}
๐ ๋ฐฐ์ด ์
2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ ๊ธฐ์ถ๋ฌธ์ ๋ก ์นด์นด์ค ๊ธฐ์ถ ์ค ์ฒซ ๋ฒ์งธ ์ ํ๋ ๋ฌธ์ ์ด๋ค.
์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ฒ๋ณด๋ค๋ ๊ตฌํ ๋ฅ๋ ฅ์ ํ๊ฐํ๋ ๋ฌธ์ ์๋ค.
์ฌ์ฉํ๋ ์ธ์ด์ STL์ ๋ค๋ฃฐ ๋ฃฐ ์๋ ๋ฅ๋ ฅ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค.
__2020.08.27(๋ชฉ)__
ํ์ด์ฌ์ ๊ณต๋ถํ๋ฉฐ ๋ค์ ํ์ด๋ณด๊ณ ์ด์ ํ์ด์ ๋น๊ตํด๋ณด์๋ค.
์ผ๋จ ํ์ด์ฌ์ ํ์คํ ์ ๊ทผ ์ฅ๋ฒฝ์ด ๋ฎ์ ํธ์ธ ๊ฒ ๊ฐ๋ค. (=๊ฟ์ผ)
๊ธฐ์กด์ ์์ฑํ ๊ฒ๋ณด๋ค ์ข ๋ ๋ถํ์ํ ๋ถ๋ถ์ ์ค์ฌ ๊ฐ๊ฒฐํ๊ฒ ํ์ง ์์๋ ์ถ๋ค.. (ํ ๋ฅํ ๋ฅ๐)