문제링크 🚩
https://school.programmers.co.kr/learn/courses/30/lessons/67256
📕 문제 접근 📕
현재 왼손과 오른손의 위치를 키패드를 누를 때 마다 기억하고 해야한다.
키패드의 위아래로 3차이, 양옆으로 1차이인 것을 이용해서 거리를 구하는 공식을 활용하였다.
💻 Code 💻
import java.util.*;
class Solution {
public String solution(int[] numbers, String hand) {
String answer = "";
int left =10; // 초기 왼쪽 손가락
int right =12; // 초기 오른쪽 손가락
for(int tmp: numbers){
if(tmp==1||tmp==4||tmp==7){
answer+="L";
left = tmp; // 현재 손가락 위치를 옮김
}else if(tmp==3||tmp==6||tmp==9){
answer+="R";
right = tmp; // 현재 손가락 위치를 옮김
}else { // 2 5 8 0 일 때
if(tmp==0) tmp=11;
int leftdist = Math.abs(tmp-left)/3+Math.abs(tmp-left)%3;
int rightdist = Math.abs(tmp-right)/3+Math.abs(tmp-right)%3;
if(leftdist<rightdist){
answer+="L";
left = tmp;
}else if(leftdist>rightdist){
answer+="R";
right = tmp;
}else{
if(hand.equals("left")){
answer+="L";
left = tmp;
}else{
answer+="R";
right = tmp;
}
}
}
}
return answer;
}
}
'JAVA > Algo 풀이' 카테고리의 다른 글
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 튜플 , Java (1) | 2023.11.11 |
---|---|
[프로그래머스] 2018 KAKAO BLIND RECRUITMENT[1차] 캐시 (0) | 2023.11.10 |
[프로그래머스] 두 큐 합 같게 만들기 - 2022 KAKAO TECH INTERNSHIP (0) | 2023.11.07 |
[백준] BOJ 1931 회의실 배정 (0) | 2023.09.24 |
[백준] 18870 좌표압축(JAVA) (0) | 2023.08.08 |