문제
https://school.programmers.co.kr/learn/courses/30/lessons/67256
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
function solution(numbers, hand) {
let answer = '';
const keypadPos = [[3,1],[0,0],[0,1],[0,2],[1,0],[1,1],[1,2],[2,0],[2,1],[2,2]];
let lPos =[3,0];
let rPos =[3,2];
for(num of numbers){
if(num===1||num===4||num===7){
answer+='L';
lPos=keypadPos[num];
}else if(num===3||num===6||num===9){
answer+='R';
rPos=keypadPos[num];
}else{
let lDist = Math.abs(keypadPos[num][0]-lPos[0])+Math.abs(keypadPos[num][1]-lPos[1])
let rDist = Math.abs(keypadPos[num][0]-rPos[0])+Math.abs(keypadPos[num][1]-rPos[1])
if(lDist<rDist){
answer+='L';
lPos=keypadPos[num];
}else if(lDist>rDist){
answer+='R';
rPos=keypadPos[num];
}else{
if(hand==='left'){
answer+='L';
lPos=keypadPos[num];
}else{
answer+='R';
rPos=keypadPos[num];
}
}
}
}
return answer;
}
'Programmers' 카테고리의 다른 글
[프로그래머스] 튜플 (JS) (0) | 2023.11.20 |
---|---|
[프로그래머스] 보석 쇼핑 (JS) - Map, 투포인터 (0) | 2023.11.20 |
[프로그래머스] 표 편집 (JS) - 연결리스트 (0) | 2023.11.19 |
[프로그래머스] 숫자 문자열과 영단어 (JS) - replaceAll (0) | 2023.11.19 |
[프로그래머스] 거리두기 확인하기 (JS) - DFS, 2차원 배열 잘 선언하기 (1) | 2023.11.19 |