[알고리즘] 프로그래머스 : 크레인 인형뽑기 게임

로빈·2022년 5월 20일
0

Algorithm, Data Structure

목록 보기
1/12

프로그래머스 : 크레인 인형뽑기 게임

  • 레벨 : 1
  • 언어 : swift
func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
    var board = board
    var result = 0 //바구니 마지막 인형과 뽑은 인형이 같을때 삭제한 인형의 카운트
    var basket: [Int] = []
        
    for move in moves { // 크레인 이동만큼 반복
        for (index, line) in board.enumerated() { //보드 한줄씩 반복
            if line[move - 1] == 0 { //크레인 위치에 인형이 없으면
                continue // 다음 라인으로 반복
            } else { // 라인에 인형이 있으면
                if basket.last == line[move - 1] { //인형 바구니에 있는 마지막 인형과 같은 인형이면
                    result += 2 // 같은인형 2개 카운트
                    basket.removeLast() //인형 바구니에서 마지막 인형 삭제
                    board[index][move - 1] = 0 // 인형뽑은 자리 0으로 바꿔줌
                    break // 다음 크레인 이동 수행
                } else { // 인형바구니에 들어있는 마지막 인형하고 뽑은 인형하고 다르면
                    basket.append(line[move - 1]) //인형바구니에 인형 집어넣음
                    board[index][move - 1] = 0 // 인형뽑은자리 0으로 바꿔줌
                    break
                }
            }
        }
    }
    
    return result
}

인덴트가 많은듯 하다. 분리가 필요할듯

profile
IOS 앱개발 공부중

0개의 댓글