January 09, 2021
각 버튼이 주어졌을 때 누르는 손가락 구하기
147
은 왼손, 369
는 오른손2580
은 나오면 더 가까운 손
let left
if ((1, 4, 7)) {
return 왼
} else if (369) {
return 오
} else {
// 어느 손으로 할지 구하기
}
각 버튼 숫자의 차를 3으로 나눈 나머지와 몫을 더하면 거리가 나온다
function solution(numbers, hand) {
let left = 10
let right = 12
const getDist = (a, b) => {
const n = Math.abs(a - b)
return parseInt(n / 3) + (n % 3)
}
const isLeft = n => {
switch (n % 3) {
case 0:
return false
case 1:
return true
case 2:
const dists = [getDist(left, n), getDist(right, n)]
if (dists[0] === dists[1]) {
return hand === 'left' ? true : false
} else {
return dists[0] < dists[1] ? true : false
}
}
}
return numbers
.map(n => (n === 0 ? 11 : n))
.map(n => {
if (isLeft(n)) {
left = n
return 'L'
} else {
right = n
return 'R'
}
})
.join('')
}