EunJng

[PRO] 키패드 누르기 | Java 본문

PROBLEM/PROGRAMMERS

[PRO] 키패드 누르기 | Java

Eunjng 2023. 6. 12. 14:48

문제

프로그래머스 코딩테스트 연습 2020 카카오 인턴십 - 키패드 누르기 | Lv.1

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이 과정

자바 풀이

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

        return answer;
    }
}
  • 변수 left, right에 현재 손가락의 위치를 [행, 열] 형태로 저장
  • 숫자가 2, 5, 8, 0일 경우 해당 숫자의 행 열 기준으로 왼손 오른손 간의 거리를 계산하여 짧은 쪽의 손가락의 위치 변경

'PROBLEM > PROGRAMMERS' 카테고리의 다른 글

[PRO] 숫자 게임 | Java | Python  (0) 2023.06.14
[PRO] 게임 맵 최단거리 | Java  (0) 2023.06.13
[PRO] 여행 경로 | Python  (0) 2023.05.08
[PRO] 기둥과 보 설치 | Python  (0) 2023.05.02
[PRO] 불량사용자 | Python  (0) 2023.04.29