๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„

by syLim___ 2023. 3. 21.
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/64061

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


์•„์ด๋””์–ด

1. ๋ฝ‘์€ ์ธํ˜•์„ ์ฐจ๋ก€๋Œ€๋กœ ๋ชจ๋‘ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค

2. ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ, ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ธํ˜• 2๊ฐœ๊ฐ€ ์—ฐ์†ํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ์ธํ˜•๋“ค์„  popํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ์— ๋‹ด๋Š”๋‹ค

3. ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ๊ฐœ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค.

 

def solution(board, moves):
    answer = 0
    
    n = len(board)
    
    # ์ธํ˜• ๋ฝ‘์•„์„œ ๋ฐฐ์—ด์— ์ €์žฅ
    after = []
    for i in range(len(moves)):
        cur_pos = moves[i] - 1
        for j in range(n):
            if board[j][cur_pos] != 0:
                after.append(board[j][cur_pos])
                board[j][cur_pos] = 0
                break
         
    # ๋ฝ‘์€ ์ธํ˜•์ด 1๊ฐœ ์ดํ•˜๋ผ๋ฉด 0์„ ๋ฆฌํ„ด     
    if len(after)<=1:
        return 0
    
    # ํ„ฐํŠธ๋ ค์ง€๋Š” ์ธํ˜•์€ ํ„ฐํŠธ๋ฆฌ๊ธฐ
    result=[]
    idx = 1
    while idx < len(after):
        if after[idx] == after[idx-1]:
            result.append(after.pop(idx))
            result.append(after.pop(idx-1))
            if idx == 1:
                idx = 0
            else:
                idx -= 2
        idx += 1
        
    return len(result)
728x90