๊ด€๋ฆฌ ๋ฉ”๋‰ด

Algo ์“ฐ์ž

[Programmers] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ ๋ณธ๋ฌธ

๐Ÿ’ฏ CodingTest/Programmers

[Programmers] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„

S.Honey 2022. 4. 18. 09:27

โ–ถ ๋ฌธ์ œ :

 

 

โ–ถ ์ฝ”๋“œ : 

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 ๋‹ค๋ฅด๋‹ค๋ฉด ๊ฑด๋„ˆ ๋›ฐ๊ธฐ