수 조작하기 1

정수 n과 문자열 control이 주어집니다. control은 "w", "a", "s", "d"의 4개의 문자로 이루어져 있으며, control의 앞에서부터 순서대로 문자에 따라 n의 값을 바꿉니다.

  • "w" : n이 1 커집니다.
  • "s" : n이 1 작아집니다.
  • "d" : n이 10 커집니다.
  • "a" : n이 10 작아집니다.

위 규칙에 따라 n을 바꿨을 때 가장 마지막에 나오는 n의 값을 return 하는 solution 함수를 완성해 주세요.

수 조작하기 1Lv.0

181946

https://school.programmers.co.kr/learn/courses/30/lessons/181926?language=javascript

해설

함수 내부에서는 주어진 명령어에 대한 동작을 정의한 actions 객체를 사용합니다. 여기서 'w'는 1을 더하고, 's'는 1을 빼고, 'd'는 10을 더하고, 'a'는 10을 빼는 동작을 나타냅니다.

  • Name
    control 배열을 반복
    Type
    Description

    주어진 control 배열을 반복하면서 배열의 각 요소를 검사합니다. 요소가 actions 객체에 존재하는 키인 경우 (hasOwnProperty 메서드를 사용하여 확인), 해당 키에 해당하는 값을 현재 숫자 n에 더합니다. 마지막으로 수정된 n을 반환합니다.

예를 들어, solution(0, ['w', 'd', 's', 'a'])를 호출하면 n은 초기에 0이고, 각각의 명령어에 따라 숫자가 다음과 같이 수정됩니다:

  • 'w': 0 + 1 = 1
  • 'd': 1 + 10 = 11
  • 's': 11 - 1 = 10
  • 'a': 10 - 10 = 0

수 조작하기 1

function solution(n, control) {
    const actions = {
        'w': 1,
        's': -1,
        'd': 10,
        'a': -10
    };

    for (let i = 0; i < control.length; i++) {
        const action = control[i];
        if (actions.hasOwnProperty(action)) {
            n += actions[action];
        }
    }

    return n;
}