일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스위프트
- SwiftUI
- Python
- 이미지학습
- 최솟값 만들기
- ios 개발 시작
- 문제
- 프로그래머스 답
- swift 시작
- 카카오 2021
- 카카오 2020
- 머신러닝
- 날씨 앱
- supervisely
- 소수
- swift
- 프로그래머스
- roboflow
- coco 데이터셋
- c언어
- kakao 2018
- 카카오 2018
- 카카오 2019
- Kakao
- Siwft
- swift 배열
- 데이터셋 만들기
- 파이썬
- 카카오
- fast.ai
Archives
- Today
- Total
잡초의 일지
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2018 KAKAO BLIND RECRUITMENT -> [1차] 다트 게임 본문
[코딩] 문제풀기/Swift
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2018 KAKAO BLIND RECRUITMENT -> [1차] 다트 게임
JabCho 2021. 2. 19. 00:07728x90
반응형
SMALL
func solution(_ dartResult:String) -> Int {
var result: Array<Int> = []
var points: Array<Int> = []
let dartRes = Array(dartResult)
var i = 0
while (i < dartRes.count ){
switch String(dartRes[i]) {
case "S":
break;
case "D":
let x = result.removeLast()
result.append(x * x)
break;
case "T":
let x = result.removeLast()
result.append(x * x * x)
break;
case "*":
result[result.count - 1] = result[result.count - 1] * 2
if (result.count > 1){
result[result.count - 2] = result[result.count - 2] * 2
}
break;
case "#":
let x = result.removeLast()
result.append(x * -1)
break;
case "0":
result.append(0)
points.append(0)
break;
case "1":
if (dartRes[i+1] == "0"){
result.append(10)
points.append(10)
i += 1
}else{
result.append(1)
points.append(1)
}
break;
case "2":
result.append(2)
points.append(2)
break;
case "3":
result.append(3)
points.append(3)
break;
case "4":
result.append(4)
points.append(4)
break;
case "5":
result.append(5)
points.append(5)
break;
case "6":
result.append(6)
points.append(6)
break;
case "7":
result.append(7)
points.append(7)
break;
case "8":
result.append(8)
points.append(8)
break;
case "9":
result.append(9)
points.append(9)
break;
default:
break;
}
i += 1
}
var finalRes = 0
for point in result {
finalRes += point
}
return finalRes
}
딕셔너리나 열거형으로 숫자를 구분할 수 있었다면 코드가 좀 더 간결해졌을 수도 있겠다.
나는 타입케스팅을 이용해 문자열을 배열로 바꾸었기 때문에, 10이 각각 1과0이 되어버려서, 구분을 하는데 어려움이 있었고, 예상치 못한 오류가 났었다.
이런 오류는 switch문의 case1에서 구분해 주었다.
728x90
반응형
LIST
'[코딩] 문제풀기 > Swift' 카테고리의 다른 글
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2020 카카오 인턴십 -> 키패드 누르기 (0) | 2021.02.19 |
---|---|
[Swift] 프로그래머스 | 코딩테스트 연습 -> 2019 카카오 개발자 겨울 인턴십 -> 크레인 인형뽑기 게임 (0) | 2021.02.19 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 수박수박수박수박수박수? (0) | 2021.02.18 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 콜라츠 추측 (0) | 2021.02.18 |
[Swift] 프로그래머스 | 코딩테스트 연습 -> 연습문제 -> 정수 제곱근 판별 (0) | 2021.02.18 |
Comments