티스토리 뷰
/* get input */
let numbers = [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2];
let hand = "left";
/* get input end */
/* solve */
function solution(numbers, hand) {
var answer = "";
let left = { x: 1, y: 1 };
let right = { x: 3, y: 1 };
let numberArr = [];
let numberAnswerArr = [];
let userHand = hand[0].toUpperCase();
for (let i = 1; i < 4; i++) {
for (let j = 1; j < 5; j++) {
numberArr.push({ x: i, y: j });
}
}
for (let i = 0; i < numbers.length; i++) {
if (numbers[i] === 1) {
numberAnswerArr.push(numberArr[3]);
} else if (numbers[i] === 2) {
numberAnswerArr.push(numberArr[7]);
} else if (numbers[i] === 3) {
numberAnswerArr.push(numberArr[11]);
} else if (numbers[i] === 4) {
numberAnswerArr.push(numberArr[2]);
} else if (numbers[i] === 5) {
numberAnswerArr.push(numberArr[6]);
} else if (numbers[i] === 6) {
numberAnswerArr.push(numberArr[10]);
} else if (numbers[i] === 7) {
numberAnswerArr.push(numberArr[1]);
} else if (numbers[i] === 8) {
numberAnswerArr.push(numberArr[5]);
} else if (numbers[i] === 9) {
numberAnswerArr.push(numberArr[9]);
} else if (numbers[i] === 0) {
numberAnswerArr.push(numberArr[4]);
}
}
for (let i = 0; i < numberAnswerArr.length; i++) {
if (numberAnswerArr[i].x === 1) {
answer += "L";
left = { x: 1, y: numberAnswerArr[i].y };
} else if (numberAnswerArr[i].x === 3) {
answer += "R";
right = { x: 3, y: numberAnswerArr[i].y };
} else {
let leftSum =
Math.abs(numberAnswerArr[i].x - left.x) +
Math.abs(numberAnswerArr[i].y - left.y);
let rightSum =
Math.abs(numberAnswerArr[i].x - right.x) +
Math.abs(numberAnswerArr[i].y - right.y);
if (leftSum < rightSum) {
answer += "L";
left = { x: 2, y: numberAnswerArr[i].y };
} else if (leftSum > rightSum) {
answer += "R";
right = { x: 2, y: numberAnswerArr[i].y };
} else if (leftSum === rightSum) {
answer += userHand;
if (userHand === "L") {
left = { x: 2, y: numberAnswerArr[i].y };
} else if (userHand === "R") {
right = { x: 2, y: numberAnswerArr[i].y };
}
}
}
}
return answer;
}
/* solve end */
/* print output */
console.log(solution(numbers, hand));
/* print output end */
키패드 0~9까지의 번호를 좌표 x, y로 변환하였습니다.
그 이후 x값이 1이면 L, x 값이 3이면 R을 하였고 x가 2일 때의 경우만 남았는데 목표의 x, y 값과 left , right의 차이의 합을 비교하여 문제를 풀었습니다.
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
프로그래머스 NodeJS Level 1 : 모의고사 (0) | 2022.03.16 |
---|---|
프로그래머스 NodeJS Level 1 : 실패율 (0) | 2022.03.16 |
프로그래머스 NodeJS Level 1 : 신고 결과 받기 (0) | 2022.03.03 |
프로그래머스 NodeJS Level 2 : 멀쩡한 사각형 (0) | 2021.10.28 |
프로그래머스 NodeJS Level 1 : 신규 아이디 추천 (0) | 2021.09.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- nodejs
- 북클럽
- React
- CLASS
- WSL2
- 프리온보딩
- 윤성우 열혈C프로그래밍
- NextRequest
- 아차산
- nextjs
- env
- 프론트앤드
- createPortal
- 우아한테크코스
- TopLayer
- 스토리 북
- electron
- 초보
- 노마드코더
- import/order
- error
- 원티드
- javascript
- C언어
- NextApiRequest
- 노개북
- 위코드
- Storybook
- jest
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함