swift 크레인 인형뽑기

quokka·2021년 1월 24일
0

코딩테스트

목록 보기
1/63

프로그래머스 문제입니다.
https://programmers.co.kr/learn/courses/30/lessons/64061

KeyPoint

일이 진행되는순서를 명확히 파악해야 풀수있는 문제같습니다.
크레인의 움직임을 따라가면서 인형이 있으면 뽑고 해당자리를 0으로 만들고, 인형이 없으면 지나치게 잘 구현해야할 거 같습니다.

func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
    var copiedBoard = board
    var bucket: [Int] = []
    var beforeDoll = 0
    var result = 0

    for move in moves {
    for i in 0..<copiedBoard.count {
        if copiedBoard[i][move-1] == 0 {
        } else {
            bucket.append(copiedBoard[i][move-1])
            copiedBoard[i][move-1] = 0
            //현재 for문 벗어난다.
            break
        }
    }
    // 바구니에 있는 인형이 2개이상이면서, 바구니의 맨위값(last) 두개가 같은지 확인해서
    // 같으면 removeLast두번하고 result+2해준다.
    if bucket.count > 1 {
        if bucket[bucket.endIndex-1] == bucket[bucket.endIndex-2] {
            bucket.removeLast()
            bucket.removeLast()
            result+=2
        }
    }
}

    return result
}

📖 참고

배열: developer.apple.com/documentation/swift/array

profile
iOS를 공부하는 개발자입니다~ㅎㅎ

0개의 댓글

관련 채용 정보