본문 바로가기
알고리즘/JavaScript

프로그래머스 / 코딩 기초 트레이닝 / 수 조작하기 1

by Krystal K 2023. 9. 18.

수 조작하기 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