알고리즘
[Swift] 프로그래머스 - 카카오 다트 게임
고고
2022. 2. 28. 21:10
문제: https://programmers.co.kr/learn/courses/30/lessons/17682
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
문제에서 요구하는대로 구현했습니다.
import Foundation
func solution(_ dartResult:String) -> Int {
var answer = [Int]()
var temp = ""
for dart in dartResult {
if Int(String(dart)) != nil {
temp.append(dart)
} else if "SDT".contains(dart) {
let num = Int(temp)!
temp = ""
if dart == "S" {
answer.append(num)
} else if dart == "D" {
answer.append(num * num)
} else if dart == "T" {
answer.append(num * num * num)
}
} else if "*#".contains(dart) {
let first = answer.removeLast()
if dart == "*" {
if !answer.isEmpty {
var second = answer.removeLast()
answer.append(second * 2)
}
answer.append(first * 2)
} else if dart == "#" {
answer.append(first * -1)
}
}
}
return answer.reduce(0, +)
}