Hodustory/프로그래밍&DB

프로그래머스 : 키패드 누르기(JAVA)

호두밥 2021. 7. 22. 18:07

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

 

코딩테스트 연습 - 키패드 누르기

[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"

programmers.co.kr

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