728x90
문제
정수 n과 문자열 control이 매개변수로 주어진다.
control은 "w", "a", "s", "d" 4개의 문자로 이루어져 있으며 각 문자에 따라 n의 값을 바꾼다.
• "w" : n이 1 커진다.
• "s" : n이 1 작아진다.
• "d" : n이 10 커진다.
• "a" : n이 10 작아진다.
위 규칙에 따라 n을 바꿨을 때, 마지막 n의 값을 반환하는 함수를 작성하라.
728x90
나의 풀이
function solution(n, control) {
// split 함수를 사용해서 각 문자의 갯수를 구한 후 조건 값을 곱해준다.
let w = (control.split('w').length - 1) * 1;
let s = (control.split('s').length - 1) * -1;
let d = (control.split('d').length - 1) * 10;
let a = (control.split('a').length - 1) * -10;
return n + w + s + d + a;
}
다른 풀이
const operations = {
w: (n) => n + 1,
s: (n) => n - 1,
d: (n) => n + 10,
a: (n) => n - 10,
};
function solution(n, control) {
return [...control].reduce((prev, op) => operations[op](prev), n);
}
728x90
'🧬알고리즘 > Programmers' 카테고리의 다른 글
[JavaScript] 수열과 구간 쿼리 2 (0) | 2024.06.03 |
---|---|
[JavaScript] 수 조작하기2 (1) | 2024.06.03 |
[JavaScript] 주사위 게임 (0) | 2024.06.03 |
[JavaScript] 홀짝에 따라 다른 수 반환하기 (0) | 2024.05.31 |
[JavaScript] 더 큰 수 반환하기 (0) | 2024.05.31 |
댓글