๋์ ์ฝ๋
def solution(board, moves):
stack = []
answer = []
imp = []
cnt = 0
# ๋น์นธ์ ์ ์ธํ์ฌ ๋จ์ ์ธํ๋ง ๋จ๊ธด ์๋ก์ด ๋ฐฐ์ด ๋ง๋ ๋ค.
for i in range(len(board)):
for t in range(len(board)):
if board[t][i] != 0:
stack.append(board[t][i])
stack.reverse()
answer.append(stack)
stack = []
# ์ธํ์ ์๋ก์ด ๋ฐ๊ตฌ๋์ ๋ฃ์ผ๋ฉด์ ๋ง์ง๋ง ์์์ ๊ทธ ์ ์์๊ฐ ๊ฐ์ผ๋ฉด pop ์ํจ๋ค.
# cnt ๋ ์ธํ์ด ์ฌ๋ผ์ง๋ ํ์์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋ผ์ง ์ธํ์ ๊ฐ์๋ ์ด ๊ฐ์ 2๋ฐฐ์ด๋ค.
for l in moves:
if len(answer[l-1]) > 0:
imp.append(answer[l-1].pop())
if len(imp) > 1:
if imp[-1] == imp[-2]:
imp.pop()
imp.pop()
cnt += 1
if len(answer[l-1]) == 0:
continue
return cnt * 2
๋ถ์ > ์ฐ์ 0์ด ์์ผ๋ฉด ์์๋ฅผ ๋บ ๋ ๋ถํธํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์ธ๋ก์ค์ ๋จ์์๋ ์ธํ๋ค๋ก๋ง ๊ตฌ์ฑ๋ ์๋ก์ด ๋ฐฐ์ด answer์ ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฐฐ์ด์ ๊ฐ์ง๊ณ imp ๋ผ๋ ์๋ก์ด ๋ฐ๊ตฌ๋์ ์์๋ฅผ ๋ฃ์ผ๋ฉด์, imp์ ๋ง์ง๋ง ์์์ ๊ทธ ์ ์์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ pop์ ์ํค๊ณ ๊ทธ ํ์ cnt ๋ฅผ ๊ตฌํ๋ค. cnt ๋ ์ฌ๋ผ์ง ํ์์ด๊ธฐ ๋๋ฌธ์ ์ค์ ์ฌ๋ผ์ง ์ธํ์ ๊ฐ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด cnt ๊ฐ์ 2๋ฐฐ๋ฅผ ๊ณฑํ ๊ฐ์ ๋ฐํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์์ ๋ง๋ค๊ธฐ (0) | 2022.04.30 |
---|---|
[Programmers] ํํ (0) | 2022.04.30 |
[Programmers] ์๋ ์ซ์ ๋ํ๊ธฐ (0) | 2022.04.29 |
[Programmers] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2022.04.29 |
[Programmers] ์์ ๋ํ๊ธฐ (0) | 2022.04.29 |