Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Xcode
- parse
- RealmSwift
- JSONSerialization
- CustomCode
- 프로그래머스
- 정보처리기사 실기
- Pod
- PageViewController
- programmers
- swift
- UITableView
- issecuretextentry
- 정보처리기사 실기 요약본
- JSONParser
- storybaord
- IOS
- Decodable
- cocoapods
- dynamic height
- pbxgroup
- 정보처리기사
- JSON
- Custom PageViewController
- 위클리챌린지
- SwiftGen
- 2018 KAKAO BLIND RECRUITMENT
- 티스토리챌린지
- pbxfilesystemsynchronizedrootgroup
- Codable
Archives
- Today
- Total
iOS 개발일기
[Swift] 프로그래머스(코딩테스트 연습: LEVEL 1) - [1차] 다트 게임 본문
https://programmers.co.kr/learn/courses/30/lessons/17682
나의 풀이
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, +)
}
'코딩테스트' 카테고리의 다른 글
[Swift] 프로그래머스(코딩테스트 연습: LEVEL 1) - 숫자 문자열과 영단어 (0) | 2021.08.19 |
---|---|
[Swift] 프로그래머스(위클리 챌린지 2주차) - 상호 평가 (0) | 2021.08.18 |
[Swift] 프로그래머스(위클리 챌린지 1주차) -부족한 금액 계산하기 (0) | 2021.08.06 |
[Swift] 프로그래머스(코딩테스트 연습: LEVEL 1) - [1차] 비밀지도 (0) | 2021.08.06 |