โถ ๋ฌธ์ :
โถ ์ฝ๋ :
from collections import deque
def solution(board, moves):
count = 0
st = deque()
for num in moves:
for i in range(len(board)):
item = board[i][num-1]
if item == 0:
continue
else:
if len(st) != 0:
recent_item = st.popleft()
if recent_item == item:
count += 2
else:
st.appendleft(recent_item)
st.appendleft(item)
else:
st.appendleft(item)
board[i][num-1] = 0
break
return count
โถ ๋ฌธ์ ํด์ค :
1. ์ฃผ์ด์ง board์์ ์์ชฝ ํ๋ถํฐ ํ์ํ๋ฉฐ ์ํ๋ item์ ๋ฝ์์ด
2. ๋ฝ์ item์ deque ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด ์ ์ฅํ๊ณ stack์ฒ๋ผ ํ์ฉ
3. deque์์ ๊ฐ์ฅ ์ต๊ทผ ๋ค์ด์จ item์ ๋ฝ์ ํ์ฌ ๋ฝ์ item๊ณผ ๋น๊ตํ๋ฉฐ ์งํ
4. ๊ฐ๋ค๋ฉด count += 2 ๋ค๋ฅด๋ค๋ฉด ๊ฑด๋ ๋ฐ๊ธฐ
'๐ฏ CodingTest > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋น๋ฐ์ง๋ (0) | 2022.04.18 |
---|---|
[Programmers] ์คํจ์จ (0) | 2022.04.18 |
[Programmers] ํคํจ๋ ๋๋ฅด๊ธฐ (0) | 2022.04.18 |
[Programmers] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2022.04.11 |
[Programmers] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (0) | 2022.04.11 |