하 도저히 모르겠어서 해설을 봐버렸다.
핵심은 위아래의 차이가 3 양옆은 1 나는 것을 이용하여
현재 위치와 눌러야하는 위치의 차이는 3으로 나눈몫과 나머지를 더하면 위치가 나온다....
이걸 생각하지 못 해서.. 답지를 봤다.. 하.. 이건 내가 너무 멍청해서 그래.. 갈 길이 정말 멀구나
class Solution {
fun solution(numbers: IntArray, hand: String): String {
var answer = ""
var right_loaction = 12 // 오른손 위치 #을 12으로 생각해서 12
var left_location = 10 // 왼손 위치 *을 10으로 생각해서 10
for (number in numbers){
if (number == 1 || number == 4 || number == 7){
left_location = number
answer += "L"
} else if (number == 3 || number == 6 || number == 9){
right_loaction = number
answer += "R"
}
else{
var location = number // 숫자 패드
if (number == 0) location = 11 // 0인경우 11로 두어야 3나눈 몫이랑 나머지 연산 사용가능
if(dis(left_location, location) < dis(right_loaction, location)) { //왼쪽이 더 작음
left_location = location
answer += "L"
}
else if(dis(left_location, location) > dis(right_loaction, location)){ //오른쪽 더 작음
right_loaction = location
answer += "R"
}else{
if(hand == "right"){
right_loaction = location
answer += "R"
}
else{
left_location = location
answer+="L"
}
}
}
}
return answer
}
fun dis(number : Int, now_hand : Int) : Int{
return (Math.abs(number - now_hand)) % 3 + (Math.abs(number - now_hand)) / 3 //거리를 나타내는 함수 3으로 나눈 몫과 나머지 알려줌.. 센스가 있어야 하는구나 사람이 ㅠ
}
}
[Python] 프린터 (0) | 2021.04.20 |
---|---|
[Kotlin] 기능개발 (0) | 2021.04.19 |
[Python] 실패율 (0) | 2021.04.16 |
[Python] [Kotlin]프로그래머스 - 내적 (0) | 2021.04.14 |
[Kotlin] 크레인 인형 뽑기 - 프로그래머스 (0) | 2021.04.14 |
댓글 영역