좌표를 다룰 때에는 좌표 열과 행을 신경써서 해결해야 합니다
초기 문제를 해결하기 못했던 잘못된 좌표값
var buttons: [(Int,Int)] = [(1,3), (0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)]
이후 좌표값을 제대로 수정하여 해결된 코드
import Foundation
func solution(_ numbers:[Int], _ hand:String) -> String {
let h = hand.first!.uppercased()
var left = (0,3)
var right = (2,3)
var result: [String] = []
var buttons: [(Int,Int)] = [(1,3), (0,0), (1,0), (2,0), (0,1), (1,1), (2,1), (0,2), (1,2), (2,2)]
for i in numbers {
let l = abs(left.0 - buttons[i].0) + abs(left.1 - buttons[i].1)
let r = abs(right.0 - buttons[i].0) + abs(right.1 - buttons[i].1)
print(l,r, left, right)
if i == 2 || i == 5 || i == 8 || i == 0 {
if l == r {
result.append(h)
if hand == "right" {
right = buttons[i]
} else if hand == "left" {
left = buttons[i]
}
} else if l > r {
result.append("R")
right = buttons[i]
} else if l < r {
result.append("L")
left = buttons[i]
}
} else if i == 1 || i == 4 || i == 7 {
result.append("L")
left = buttons[i]
} else if i == 3 || i == 6 || i == 9 {
result.append("R")
right = buttons[i]
}
}
return result.joined()
}
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 - 숫자 문자열과 영단어 (2021 카카오 채용연계형 인턴쉽) (0) | 2024.09.14 |
---|---|
프로그래머스 - 성격 유형 검사하기 (카카오 인턴쉽) (0) | 2024.09.11 |
프로그래머스 - 두 개 뽑아서 더하기 (0) | 2024.09.11 |
프로그래머스 - 3진법 뒤집기 (0) | 2024.09.11 |
프로그래머스 - 내적 (0) | 2024.09.11 |