๐Ÿค–/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | Lv1] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ (Python) - 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ

sssbin 2023. 1. 26. 17:26

 

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