<ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์>
๋ฌธ์ (์ถ์ฒ: https://school.programmers.co.kr/learn/courses/30/lessons/64061)
๋ฌธ์ ํ์ด
- my solution
def solution(board, moves):
answer = 0
result = []
for i in moves:
for j in range(len(board)):
if (board[j][i - 1] != 0): # ์ธํ์ด ์๋ ๊ณณ ํ์ธ
if (len(result) != 0 and result[-1] == board[j][i - 1]): # ์ธํ์ด ํฐ์ง๋
result.pop()
answer += 2
board[j][i - 1] = 0
else: # ๋ฐ๊ตฌ๋์ ์์ผ๋
result.append(board[j][i - 1])
board[j][i - 1] = 0
break
return answer
moves: ์ธํ์ ์ง๊ธฐ ์ํด ํฌ๋ ์ธ์ ์๋์ํจ ์์น
board: ๊ฒ์ ํ๋ฉด์ ๊ฒฉ์์ ์ํ๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด
result: ๋ฐ๊ตฌ๋
์ด์ค for๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ!!
1) ํฌ๋ ์ธ์ ์๋์ํจ ์์น์ ๊ฒ์ ํ๋ฉด์์ ์ธํ์ ์์น๋ฅผ ํ์ ํ๊ธฐ ์ํด for๋ฌธ ์ฌ์ฉ
2) 0์ ์ธํ์ด ์๋๊ณณ, 0์ด ์๋ ์ซ์๋ ์ธํ์ด ์๋ ๊ณณ -> ์กฐ๊ฑด๋ฌธ์ ํตํด ํ๋ณ
3) ๋ฐ๊ตฌ๋(result)๋ฅผ ํ์ธํ์ฌ ๊ฐ์ ์ซ์์ด๋ฉด ์ธํ์ด ํฐ์ง๋ฏ๋ก ๋ฐ๊ตฌ๋์์ ๊ฐ์ ์ซ์๋ฅผ popํ ํ
ํฐํธ๋ ค์ ธ ์ฌ๋ผ์ง ์ธํ์ ๊ฐ์(answer)์ 2๊ฐ๋ฅผ ๋ํจ
3-1 ) ์ธํ์ ์ง์ผ๋ฉด ์๋ ์ธํ์ด ์๋ ์์น์๋ ์๋ฌด ๊ฒ๋ ์์ผ๋ฏ๋ก ๊ทธ ์๋ฆฌ๋ฅผ 0์ผ๋ก ๋ฐ๊ฟ์ค
4) ๊ฐ์ ์ซ์๊ฐ ์๋๋ฉด ๋ฐ๊ตฌ๋์ ์ธํ์ ์๊ณ 3-1)๊ณผ ๊ฐ์ด ์ธํ์ด ์๋ ์์น๋ 0์ผ๋ก ๋ฐ๊ฟ์ค
๋ฌธ์ ๊ธธ์ด๋ ๊ธธ์์ง๋ง ์๊ฐ๋ณด๋ค ์ด๋ ต์ง ์์๋ ๋ฌธ์ ์๋ค!
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges