๐ŸŒžAlgorithm/๐Ÿ”ฅprogrammers

[programmers] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„ -2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ

๋ฟŒ์•ผ._. 2021. 1. 3. 21:33

<ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ ๊ฒŒ์ž„>

 

๋ฌธ์ œ(์ถœ์ฒ˜: https://school.programmers.co.kr/learn/courses/30/lessons/64061)

 

 

 

๋ฌธ์ œ ํ’€์ด
   - my solution

def solution(board, moves):
    answer = 0
    result = []

    for i in moves:
        for j in range(len(board)):
            if (board[j][i - 1] != 0):  # ์ธํ˜•์ด ์žˆ๋Š” ๊ณณ ํ™•์ธ
                if (len(result) != 0 and result[-1] == board[j][i - 1]):  # ์ธํ˜•์ด ํ„ฐ์งˆ๋•Œ
                    result.pop()
                    answer += 2
                    board[j][i - 1] = 0
                else:  # ๋ฐ”๊ตฌ๋‹ˆ์— ์Œ“์ผ๋•Œ
                    result.append(board[j][i - 1])
                    board[j][i - 1] = 0
                break

    return answer

  moves: ์ธํ˜•์„ ์ง‘๊ธฐ ์œ„ํ•ด ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚จ ์œ„์น˜

  board: ๊ฒŒ์ž„ ํ™”๋ฉด์˜ ๊ฒฉ์ž์˜ ์ƒํƒœ๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด

  result: ๋ฐ”๊ตฌ๋‹ˆ

 

  ์ด์ค‘ for๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ!!

 

    1) ํฌ๋ ˆ์ธ์„ ์ž‘๋™์‹œํ‚จ ์œ„์น˜์™€ ๊ฒŒ์ž„ ํ™”๋ฉด์—์„œ ์ธํ˜•์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด for๋ฌธ ์‚ฌ์šฉ

    2) 0์€ ์ธํ˜•์ด ์—†๋Š”๊ณณ, 0์ด ์•„๋‹Œ ์ˆซ์ž๋Š” ์ธํ˜•์ด ์žˆ๋Š” ๊ณณ -> ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด ํŒ๋ณ„

    3) ๋ฐ”๊ตฌ๋‹ˆ(result)๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ฐ™์€ ์ˆซ์ž์ด๋ฉด ์ธํ˜•์ด ํ„ฐ์ง€๋ฏ€๋กœ ๋ฐ”๊ตฌ๋‹ˆ์—์„œ ๊ฐ™์€ ์ˆซ์ž๋ฅผ popํ•œ ํ›„ 

        ํ„ฐํŠธ๋ ค์ ธ ์‚ฌ๋ผ์ง„ ์ธํ˜•์˜ ๊ฐœ์ˆ˜(answer)์— 2๊ฐœ๋ฅผ ๋”ํ•จ

        3-1 ) ์ธํ˜•์„ ์ง‘์œผ๋ฉด ์›๋ž˜ ์ธํ˜•์ด ์žˆ๋˜ ์œ„์น˜์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ์—†์œผ๋ฏ€๋กœ ๊ทธ ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟ”์คŒ

    4) ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ฐ”๊ตฌ๋‹ˆ์— ์ธํ˜•์„ ์Œ“๊ณ  3-1)๊ณผ ๊ฐ™์ด ์ธํ˜•์ด ์žˆ๋˜ ์œ„์น˜๋Š” 0์œผ๋กœ ๋ฐ”๊ฟ”์คŒ


๋ฌธ์ œ ๊ธธ์ด๋Š” ๊ธธ์—ˆ์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์•˜๋˜ ๋ฌธ์ œ์˜€๋‹ค!

 

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต, https://programmers.co.kr/learn/challenges