๋ฌธ์ ๋งํฌ
์ ๊ทผ ๋ฐฉ๋ฒ
๋จผ์ right์ left์ ์์น๋ฅผ ์ง์ ํด์ฃผ๊ณ ๋น๊ต์ ์ฌ์ด [1,4,7] [3,6,9]์์์ ํคํจ๋ ์์ง์์ ์ฒ๋ฆฌํ๋ค.
ํคํจ๋ ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ๊ฐ์ฒด๋ก ์์ฑํ ๋ค [2,5,8,0]์์์ ํคํจ๋ ์์ง์์ ์ฒ๋ฆฌํ๋ค.
์ด๋ hand๊ฐ left์ผ๋์ right์ผ๋๋ฅผ ๋๋ ์๊ฐํด์ผํ๋ค.
ํคํจ๋ ๊ฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ getDistance()ํจ์๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
ํคํจ๋ ๊ฐ์ฒด์ value์ธ ๋ฐฐ์ด์ ํ,์ด์ ๋บ์ ์ ์ ๋๊ฐ์ ์ฃผ์ด ์ฒ๋ฆฌํ๋ค.
function getDistance(num1, num2){
let keyObj = {1 : [3,0], 2 : [3,1], 3 : [3,2],
4 : [2,0], 5 : [2,1], 6 : [2,2],
7 : [1,0], 8 : [1,1], 9 : [1,2],
'*': [0,0], 0 : [0,1], '#' : [0,2]}
return (Math.abs(keyObj[num1][0] - keyObj[num2][0]) + Math.abs(keyObj[num1][1] - keyObj[num2][1]))
}
function solution(numbers, hand) {
var answer = [];
let left = '*';
let right = '#';
numbers.map((num) => {
if([1,4,7].includes(num)){
answer.push("L");
left = num;
}else if([3,6,9].includes(num)) {
answer.push("R");
right = num;
}else if([2,5,8,0].includes(num)){
if(hand === "left") {
if(getDistance(num,left) <= getDistance(num, right)){
answer.push("L");
left = num;
}else{
answer.push("R");
right = num;
}
}else if(hand === "right"){
if(getDistance(num,right) <= getDistance(num, left)){
answer.push("R");
right = num;
}else{
answer.push("L");
left = num;
}
}
}
})
answer = answer.join("")
return answer;
}
์ฒ์ ์ค๋ต ์ฝ๋
1. ์ค์ ํค๋ณด๋์ ๊ฑฐ๋ฆฌ ์ฐ์ฐ์ ๋๋ฌด ๋จ์ํ๊ฒ ์๊ฐํ๋ค.
2. ์ค์ ํค๋ณด๋์์์ ์ด๋์ left, right ๋ฒํผ์ ํ ๋นํ์ง ์์๋ค.
function solution(numbers, hand) {
var answer = [];
let left = 0;
let right = 0;
numbers.map((num) => {
if([1,4,7].includes(num)){
answer.push("L");
left = num;
}else if([3,6,9].includes(num)) {
answer.push("R");
right = num;
}else{
if(hand === "left") {
Math.abs(num - left) <= Math.abs(num - right) ? answer.push("L") : answer.push("R")
}else{
Math.abs(num - right) <= Math.abs(num - left) ? answer.push("R") : answer.push("L")
}
}
})
answer = answer.join("")
return answer;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ์๋ ์ซ์ ๋ํ๊ธฐ (86051) (0) | 2022.04.23 |
---|---|
[Javascript] ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ (64061) (0) | 2022.04.22 |
[Javascript] ์ ๊ท ์์ด๋ ์ถ์ฒ (72410) (0) | 2022.04.20 |
[Javascript] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (77484) (0) | 2022.04.20 |
[Javascript] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (92334) (0) | 2022.04.19 |