문제: https://programmers.co.kr/learn/courses/30/lessons/17682
문제에서 요구하는대로 구현했습니다.
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, +)
}
'알고리즘' 카테고리의 다른 글
[Swift] 프로그래머스 - 카카오 길 찾기 게임 (0) | 2022.03.04 |
---|---|
[Swift] 프로그래머스 - 카카오 캐시 (0) | 2022.02.28 |
[Swift] 4가지 방법의 피보나치 함수 (0) | 2022.02.28 |
[Swift] LeetCode - 134. Gas Station (0) | 2022.02.28 |
[Swift] LeetCode - 136. Single Number (0) | 2022.02.17 |
댓글