[프로그래머스 LV1] 크레인 인형뽑기 게임

Junyoung Park·2022년 8월 16일
0

코딩테스트

목록 보기
567/631
post-thumbnail

1. 문제 설명

크레인 인형뽑기 게임

2. 문제 분석

스택을 통해 현재 들어오는 인형의 종류와 가장 윗단에 존재하는 인형을 비교할 수 있다.

3. 나의 풀이

import Foundation

func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
    var board = board
    var total = 0
    var stack = [Int]()
    
    func getDoll(_ position: Int) -> Int? {
        let position = position - 1
        for idx in 0..<board.count {
            if board[idx][position] != 0 {
                let doll = board[idx][position]
                board[idx][position] = 0
                return doll
            }
        }
        return nil
    }
    
    for move in moves {
        guard let doll = getDoll(move) else { continue }
        if !stack.isEmpty {
            if stack.last! == doll {
                stack.removeLast()
                total += 2
            } else {
                stack.append(doll)
            }
        } else {
            stack.append(doll)
        }
    }
    
    return total
}
profile
JUST DO IT

0개의 댓글