슈콩

[프로그래머스] Lv.1 키패드 누르기 본문

Algorithms/Programmers

[프로그래머스] Lv.1 키패드 누르기

shukong 2025. 10. 6. 19:21

[문제]

https://school.programmers.co.kr/learn/courses/30/lessons/67256

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

[소스 코드]

class Solution {
    public String solution(int[] numbers, String hand) {
        String answer = "";
        int n = numbers.length;
        int left = 10;
        int right = 12;
        for(int i=0;i<n;i++){
            int num = numbers[i];
            if(num==0) num = 11;
            if(num==1 || num==4 || num==7){
                answer += "L";
                left = num;
            }
            else if(num==3 || num==6 || num==9){
                answer += "R";
                right = num;
            }
            else{
                int disLeft = Math.abs(left-num)/3 + Math.abs(left-num)%3;
                int disRight = Math.abs(right-num)/3 + Math.abs(right-num)%3;
                if(disLeft<disRight){
                    answer += "L";
                    left = num;
                }
                else if(disLeft>disRight){
                    answer += "R";
                    right = num;
                }
                else{
                    if(hand.equals("left")){
                        answer += "L";
                        left = num;
                    }
                    else{
                        answer += "R";
                        right = num;
                    }
                }
            }
        }
        return answer;
    }
}