[Swift] 프로그래머스(Lv2) - 키패드 누르기 (2020 카카오 인턴십 )
안녕하세요 :)
https://programmers.co.kr/learn/courses/30/lessons/67256
이 문제 전에 Python으로 풀어봤었는데 이번엔 Swift로 한번 풀어봤습니다.
문제는 단순한데 …. if ~ if ~ 가 많은 문제입니다.
행을 1~4 로 하고 열을 1~3 으로 해서 풀었습니다.
import Foundation
func solution(_ numbers:[Int], _ hand:String) -> String {
var answer = ""
var right = [4, 3]
var left = [4, 1]
for var number in numbers {
if number == 0 {
number = 11
}
switch number {
case 1, 4, 7:
answer += "L"
let row: Int = number / 3 + 1
left = [row, 1]
case 3, 6, 9:
answer += "R"
let row: Int = number / 3
right = [row, 3]
default:
let row: Int = (number / 3) + 1
let numPos = [row, 2]
let right_dist = dist(right, numPos)
let left_dist = dist(left, numPos)
if right_dist > left_dist {
left = numPos
answer += "L"
} else if right_dist < left_dist {
right = numPos
answer += "R"
} else {
if hand == "right" {
right = numPos
answer += "R"
} else {
left = numPos
answer += "L"
}
}
}
}
return answer
}
func dist(_ handPos:[Int], _ numPos: [Int]) -> Int {
let distance = abs(handPos[0] - numPos[0]) + abs(handPos[1] - numPos[1])
return distance
}
Author And Source
이 문제에 관하여([Swift] 프로그래머스(Lv2) - 키패드 누르기 (2020 카카오 인턴십 )), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kerri/Swift-프로그래머스Lv2-키패드-누르기-2020-카카오-인턴십저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)