티스토리 뷰

728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3 

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

코드

def solution(board, moves):
    answer = 0
    result = []
    for i in moves:
        for j in range(len(board)):
            if board[j][i-1] != 0:
                result.append(board[j][i-1])
                board[j][i-1] = 0
                break
        for j in range(len(result)-1):
            if result[j] == result[j+1]:
                result.pop()
                result.pop()
                answer += 2
                break
    return answer

크레인이 움직이는 배열을 담고있는 moves를 for문으로 돌려 열로 지정하고 (moves에 1부터 들어가있는데 인덱스에 넣을때는 -1을 해준다.)

 

board에 행을 순서대로 탐색해 board[j][i-1]이 0일 경우에는 새로만든 result 리스트에 넣어주고 board에서는 뺴줘야 하기 때문에 0으로 바꿔준다.

 

그리고 result에 같은값이 연속으로 있을경우에는 두 값을 바로 없애주고 answer에 2를 더해주면 된다.

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31