-
[자바스크립트] 프로그래머스 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