프로그래머스 / Level1 , 2020 카카오 인턴십 , 키패드 누르기 자바스크립트 , JS
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/67256
정답
const cal = (x, y, a, b) => {
let tmp = Math.abs(x - a) + Math.abs(y - b);
return tmp;
};
function solution(numbers, hand) {
var answer = "";
const arr = [
[1, 3],
[0, 0],
[1, 0],
[2, 0],
[0, 1],
[1, 1],
[2, 1],
[0, 2],
[1, 2],
[2, 2],
];
let [left_x, left_y] = [0, 3];
let [right_x, right_y] = [2, 3];
let [s_x, s_y] = [0, 0];
let check = true;
for (let i of numbers) {
if (i === 1 || i === 4 || i === 7) {
// 왼손으로 무조건 누를 때
answer += "L";
[left_x, left_y] = arr[i];
} else if (i === 3 || i === 6 || i === 9) {
// 오른손으로 무조건 누를 때
answer += "R";
[right_x, right_y] = arr[i];
} else {
// 왼손, 오른손 구분해줘야 할 때
[s_x, s_y] = arr[i];
if (cal(left_x, left_y, s_x, s_y) > cal(right_x, right_y, s_x, s_y))
check = true;
else if (cal(left_x, left_y, s_x, s_y) < cal(right_x, right_y, s_x, s_y))
check = false;
else {
if (hand === "right") check = true;
else check = false;
}
if (check === true) {
answer += "R";
[right_x, right_y] = [s_x, s_y];
} else {
answer += "L";
[left_x, left_y] = [s_x, s_y];
}
}
}
return answer;
}
반응형
'알고리즘 공부 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 / Level2 , 2017 팁스타운 , 짝지어 제거하기 자바스크립트 , JS (0) | 2022.09.19 |
---|---|
프로그래머스 / Level1 , 2019 카카오 개발자 겨울 인턴십 , 크레인 인형뽑기 게임 자바스크립트 , JS (0) | 2022.09.18 |
프로그래머스 / Level1 , 2018 KAKAO BLIND RECRUITMENT , [1차] 다트 게임 자바스크립트 , JS (0) | 2022.09.15 |
프로그래머스 / Level1 , 2019 KAKAO BLIND RECRUITMENT , 실패율 자바스크립트 , JS (0) | 2022.09.14 |
프로그래머스 / Level1 , 2021 카카오 채용연계형 인턴십 , 숫자 문자열과 영단어 자바스크립트 , JS (0) | 2022.09.13 |