iOS 개발일기

[Swift] 프로그래머스(코딩테스트 연습: LEVEL 1) - [1차] 다트 게임 본문

코딩테스트

[Swift] 프로그래머스(코딩테스트 연습: LEVEL 1) - [1차] 다트 게임

맨날 까먹으니 적어두자 2021. 8. 5. 18:49

 

https://programmers.co.kr/learn/courses/30/lessons/17682

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr

 

나의 풀이

func solution(_ dartResult: String) -> Int {

    let result = dartResult.replacingOccurrences(of: "10", with: "K")
    
    var score = [Int]()
    var number = 0 
    
    result.forEach { char in 
    	if let value = char.wholeNumberValue { //0-9
            number = value
        } else {
            switch char {
            case "K": //10
            	number = 10
            case "S":
            	score.append(number)
            case "D":
            	score.append(number * number)
                //or score.append(Int(pow(Double(number), 2)))
            case "T":
            	score.append(number * number * number)
                //or score.append(Int(pow(Double(number), 3)))
            case "*":
            	if score.count > 1 {
                	score[score.count - 2] *= 2
                }
                
                score[score.count - 1] *= 2
            case "#":
            	score[score.count - 1] *= -1
            default:
            	break
            }
        }
    }
    
    return score.reduce(0, +)
}