카테고리 없음
[자바스크립트] 프로그래머스 Lv.1 [카카오 인턴] 키패드 누르기
티레이니
2022. 6. 2. 23:59
let num_pad = [[1, 4, 7, '*'], [2, 5, 8, 0], [3, 6, 9, '#']]
let l_now = [ 0,3 ]
let r_now = [ 2,3 ]
hand = hand === "left" ? 'L' : 'R'
for (n of numbers) {
if ( num_pad[0].includes(n) ) {
answer.push('L')
l_now = [ 0, num_pad[0].indexOf(n) ]
} else if ( num_pad[2].includes(n) ) {
answer.push('R')
r_now = [ 2, num_pad[2].indexOf(n) ]
} else {
let n_now = []
num_pad.forEach((column,i) => {
if (column.includes(n)) { n_now = [i, column.indexOf(n)] }
} )
let l_distance = Math.abs(l_now[0] - n_now[0]) + Math.abs(l_now[1] - n_now[1])
let r_distance = Math.abs(r_now[0] - n_now[0]) + Math.abs(r_now[1] - n_now[1])
let finger = l_distance === r_distance ? hand : l_distance > r_distance ? 'R' : 'L'
if (finger === 'L') { l_now = n_now }
else { r_now = n_now }
answer.push(finger)
}
}
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