반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 프로그래머스 - 크레인 인형뽑기 게임 문제를 풀었습니다.
목차
Github
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/64061
풀이
스택을 이용한 문제입니다.
반복문을 이용해 하나씩 살펴보면서 인형이 있으면 인형 종류와 top을 비교합니다.
들어갈 인형이 top과 똑같으면 pop을 하고 다르면 push 합니다.
한 번 틀렸는데요. pop하는 횟수를 그대로 return했기 때문이었습니다.
문제에서 요구하는 것은 인형의 개수이니 2배를 해줘야 합니다.
전체 코드
import Foundation
func solution(_ board:[[Int]], _ moves:[Int]) -> Int {
var result = 0
var basket: [Int] = []
var board = board
for move in moves {
for (index, line) in board.enumerated() {
let doll = line[move-1]
if doll > 0 {
board[index][move-1] = 0
if doll == basket.last {
result += 2
basket.removeLast()
} else {
basket.append(doll)
}
break
}
}
}
return result
}
let board = [[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]]
let moves = [1,5,3,5,1,2,1,4]
print(solution(board, moves))
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형