프로그래머스 (Swift)/기초
[Day6-3] 수 조작하기2
은더기
2024. 2. 9. 19:11
문제
내 정답 코드
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]! }
}
배운 기술