switch 문 써보고 싶었는데, 잘 쓸 줄 몰라서 if, else if로 풀었다.
function solution(keyinput, board) {
let x = 0;
let y = 0;
let xLimit = (board[0] - 1) / 2;
let yLimit = (board[1] - 1) / 2;
keyinput.forEach((item) => {
if (item === "left") {
if (x === -xLimit) {
} else {
x -= 1;
}
} else if (item === "right") {
if (x === xLimit) {
} else {
x += 1;
}
} else if (item === "up") {
if (y === yLimit) {
} else {
y += 1;
}
} else if (item === "down") {
if (y === -yLimit) {
} else {
y -= 1;
}
}
});
let answer = [x, y];
return answer;
}
const keyinput = ["down", "down", "down", "down", "down"];
const board = [7, 9];
console.log(solution(keyinput, board));
다른 사람이 switch로 푼 답
function solution(keyinput, board) {
var answer = [0, 0];
const bndrX = (board[0] - 1) / 2;
const bndrY = (board[1] - 1) / 2;
keyinput.forEach(cmd => {
switch(cmd) {
case 'up': {
if(answer[1] !== bndrY) answer[1]++;
break;
}
case 'down': {
if(answer[1] !== -bndrY) answer[1]--;
break;
}
case 'left': {
if(answer[0] !== -bndrX) answer[0]--;
break;
}
case 'right': {
if(answer[0] !== bndrX) answer[0]++;
break;
}
}
});
return answer;
}
'개발자 되는 중 > 알고리즘' 카테고리의 다른 글
[level 0] 배열 원소의 길이 - 120854 (0) | 2023.02.02 |
---|---|
[level 0] 배열 뒤집기 - 120821 (0) | 2023.02.02 |
[level 0] 중복된 숫자 개수 - 120583 (0) | 2023.01.03 |
프로그래머스 Javascript n의 배수 고르기 (0) | 2022.12.14 |
프로그래머스 Javascript 2차원으로 만들기 (0) | 2022.12.14 |