[ํ๋ก๊ทธ๋๋จธ์ค | Lv1] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (Python) - 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ
https://school.programmers.co.kr/learn/courses/30/lessons/64061
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ด๊ฐ ์๊ฐํ ๋ฐฉ๋ฒ์ ์ฒ์์ for๋ฌธ์ ์ฐจ๋ก๋๋ก ๋๋ฉด์ ๊ฐ์ด 0์ด ์๋ ๋ ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ๋ ค๊ณ ํ์ง๋ง
๋งค ๋ฐ๋ณต๋ฌธ๋ง๋ค 0์ด ์๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋๊ฒ ๋นํจ์จ์ ์ด๋ผ๊ณ ๋๊ปด์ ธ์ ์์ ์ฒ์๋ถํฐ 0์ด ์๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์๋๊ณ ์์ํ๋ค.
์ด์ฐจํผ ์ธํ๋ค์ ๋ฐ์์๋ถํฐ ์์ฌ์๊ธฐ ๋๋ฌธ์ 0์ด ์๋ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์๋์ผ๋ฉด ๊ทธ ์ดํ ์ธ๋ฑ์ค๋ ๋ชจ๋ 0์ด ์๋!
0์ด ์๋ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค ๋ฆฌ์คํธ๋ฅผ ๊ตฌํด๋๊ณ moves๋ฅผ ๋๋ฆฌ๋ฉด์ ๋ฐ๊ตฌ๋์ ํ๋์ฉ ์ถ๊ฐํ๋ค.
์ด๋ ๋ฐ๊ตฌ๋์ ๊ฐ์ฅ ๋ง์ง๋ง ์์ ๋๊ฐ๊ฐ ๊ฐ์ ์์์ด๋ฉด pop()์ ํด์ฃผ๊ณ ์ ๋ต์ 2๋ฅผ ์ถ๊ฐํ๋ค.
# ํ๋ก๊ทธ๋๋จธ์ค 64061: ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ)
def solution(board, moves):
answer = 0
temp = [0 for i in range(len(board))]
basket = []
for i in range(len(board)):
for j in range(len(board[0])):
if board[j][i] != 0:
temp[i] = j
break
for i in moves:
if temp[i-1] < len(board[0]):
basket.append(board[temp[i-1]][i-1])
temp[i-1] += 1
if len(basket) > 1 and basket[-2] == basket[-1]:
basket.pop()
basket.pop()
answer += 2
return answer