개발자 되는 중/알고리즘
프로그래머스 Javascript 캐릭터의 좌표
SeonChoco
2022. 12. 14. 21:12
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;
}