알고리즘문풀 with SWIFT/Programmers

swift ) 프로그래머스 - 2019카카오인턴 크레인 인형뽑기 게임

유사앱등이 2022. 6. 22. 01:33

 

레벨1은 확실히 난이도가 높지는 않다는 생각이 들었음..

더 좋은 방법이 있지 않을까 싶기도 한데..

다른 분들 풀이한 걸 봐도 O(N^2) 이여서.. 큰 의미는 없지 싶다

조금 더 직관적으로 코드를 깔끔하게 짤 수 있었으면 좋았을텐데..

 

import Foundation

func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
    
    var doll = board
    let n = doll[0].count
    var result = [Int]()

    var sum = 0
    
    for i in 0..<moves.count {
        let index = moves[i]-1
        for j in 0..<n {
            if doll[j][index] != 0 {
                result.append(doll[j][index])
                doll[j][index] = 0
                break
            }
        }
        if result.count >= 2 && result[result.count-1] == result[result.count-2] {
            sum += 2
            result.removeLast(2)
        }
    }
    return sum
}