문제
내 정답 코드
func solution(_ numLog:[Int]) -> String {
var result = ""
for i in 0..<numLog.count {
if i != 0 {
switch numLog[i] - numLog[i-1] {
case 1:
result += "w"
case -1:
result += "s"
case 10:
result += "d"
case -10:
result += "a"
default:
break
}
}
}
return result
}
#
1. 배열의 수만큼 반복문을 돌린다.
2. 0이 아닌 인덱스에서 i번째에서 i-1번째의 값을 빼고
3. 뺀 값을 보고 문자열을 만들어간다.
@ 저번 문제에서 사용했던 dictionary를 사용해서 더 짧은 코드를 짜보았다.
import Foundation
func solution(_ numLog:[Int]) -> String {
let dic = [1:"w", -1:"s", 10:"d", -10:"a"]
return (1..<numLog.count).map { numLog[$0] - numLog[$0-1] }.reduce("") { $0 + dic[$1]! }
}
배운 기술
'프로그래머스 (Swift) > 기초' 카테고리의 다른 글
[Day6-5] 수열과 구간 쿼리2 (1) | 2024.02.10 |
---|---|
[Day6-4] 수열과 구간 쿼리 3 (0) | 2024.02.09 |
[Day6-2] 수 조작하기1 (0) | 2024.02.09 |
[Day6-1] 마지막 두 원소 (0) | 2024.02.09 |
[Day5-5] 이어 붙인 수 (0) | 2024.02.02 |