상세 컨텐츠

본문 제목

[Kotlin] 키패드 누르기

알고리즘 공부

by 독서와 여행 2021. 4. 18. 19:42

본문

하 도저히 모르겠어서 해설을 봐버렸다.

핵심은 위아래의 차이가 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

관련글 더보기

댓글 영역