본문 바로가기

개발/알고리즘

[프로그래머스] 2019 Kakao Winter Internship - 크레인 인형뽑기 게임

반응형
 

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

[[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

입력 & 출력

문제는 링크에서 확인 바랍니다

풀이

스택을 활용하는 문제다 

문제에서는 중복된 인형의 수를 물었기에 뽑은 인형들을 출력할 필요는 없다
스택에 넣기 전 같은 인형일 경우 총합에 2를 더하고 다른 인형일 경우 그대로 스택에 인형을 넣어주자
배열에서 뽑아오는 인형이 0 일 경우 다음 배열로 넘기기 위해 반복문을 사용한다

 

Swift 전체 코드

var list = board
var stack : [Int] = [0]
var count = 0

for i in moves {
    
    for y in 0..<list.count {
        if list[y][i - 1] != 0 {
            if stack.isEmpty {
                stack.append(list[y][i-1])
                break
            }
            else {
                if stack.last! != list[y][i-1] {
                    stack.append(list[y][i-1])
                } else {
                    count += 2
                    stack.removeLast()
                }
                list[y][i-1] = 0
                break
            }
        }
    }
}

return count

 

반응형