수 조작하기 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 함수를 완성해 주세요.
제한사항
-100,000 ≤ n ≤ 100,000
1 ≤ control의 길이 ≤ 100,000
control은 알파벳 소문자 "w", "a", "s", "d"로 이루어진 문자열입니다.
[내가 푼 방식]
단순하게 split으로 문자열 나눠서 새로운 array로 만들기.
조건에 따라 비교해서 연산 후 결과값 출력하기
[다른 사람이 푼 방식]
reduce의 활용
inc 객체로 처리할 값들 정리하기
c -> 배열의 value === inc 의 key
inc[c] === 더하거나 빼야할 값
p + inc[c] => 합산하기
이때 초기 값으로 n을 넣어 n + p + inc[c]
깔끔하다..
왜 이 방법을 생각 못했지. 어제 reduce써봤으면서,,
728x90
'알고리즘 > JavaScript' 카테고리의 다른 글
프로그래머스 / 코딩 기초 트레이닝 / 수 조작하기 2 (0) | 2023.09.18 |
---|---|
프로그래머스 / 코딩 기초 트레이닝 / 수열과 구간 쿼리 2 (0) | 2023.09.18 |
프로그래머스 / 코딩 기초 트레이닝 / 등차수열에 특정한 항만 더하기 (0) | 2023.09.17 |
프로그래머스 / 코딩 기초 트레이닝 / 홀짝에 따라 다른 값 반환하기 (0) | 2023.09.17 |
프로그래머스 / 코딩 기초 트레이닝 / 공배수 (0) | 2023.09.16 |