💬 문제
[프로그래머스](https://school.programmers.co.kr/learn/courses/30/lessons/17682/solution_groups?language=swift)
💬 Idea
- “S”, “D”, “T”, “#”, “*”가 나올 때마다 cutIndex를 +해주고,
- “S”, “D”, “T”가 나오면 cutIndex부터 Index까지 잘라서 정수를 빼내준 뒤 num 배열에 append한다.
→ 10을 문자열로 다루면 1, 0으로 잘리기 때문에 이렇게 잘라주는 것이다!
💬 풀이
func solution(dartResult:String)->Int{letdict=["S":1,"D":2,"T":3]letstr:[String]=Array(dartResult).map({String($0)})varnum:[Int]=[]varcutIndex=0for(index, i)in dartResult.enumerated(){if dartResult.filter({ !$0.isNumber }).contains(i){letn=str[cutIndex..<index].joined()if n !=""{
num.append(Int(n)!)}
cutIndex = index +1if i =="S" || i =="D" || i =="T"{num[num.count -1]=Int(pow(Double(num[num.count -1]),Double(dict[String(i)]!)))}elseif i =="*"{num[num.count -1]*=2if num.count -2>=0{num[num.count -2]*=2}}else{num[num.count -1]*=-1}}}return num.reduce(0,+)}func solution(dartResult:String)->Int{letdict=["S":1,"D":2,"T":3]letstr:[String]=Array(dartResult).map({String($0)})varnum:[Int]=[]varcutIndex=0for(index, i)in dartResult.enumerated(){switch i {case"S","D","T":
num.append(Int(str[cutIndex..<index].joined())??0)num[num.count -1]=Int(pow(Double(num[num.count -1]),Double(dict[String(i)]!)))
cutIndex = index +1case"*":num[num.count -1]*=2if num.count -2>=0{num[num.count -2]*=2}
cutIndex = index +1case"#":num[num.count -1]*=-1
cutIndex = index +1default:break}}return num.reduce(0,+)}
💬 문제[프로그래머스](https://school.programmers.co.kr/learn/courses/30/lessons/17682/solution_groups?language=swift)
💬 Idea→ 10을 문자열로 다루면 1, 0으로 잘리기 때문에 이렇게 잘라주는 것이다!
💬 풀이