수 조작하기 1

남예지·2024년 1월 28일
0

미코

목록 보기
21/37

문제

정수 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 함수를 완성해 주세요.

function solution(n, control) {
    var answer = n;
    for(el of control){
        if(el === "w"){
            answer += 1
        }else if(el === "s"){
            answer -= 1
        }else if(el === "d"){
            answer += 10
        }else{
            answer -= 10
        }
    }
    
    return answer;
}

근데 for of문이 더 쉽긴 한데 티는 잘 안나지만 for문이 좀 더 빠르다.
실무는 for문으로 하자.

다른사람 코드중 되게 써먹고 싶은 구조가 나왔다.

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);
}

객체나 구조분해 할당 등 나는 아직 이런것들을 잘 다루지 못한다.
안다루려고 하니 실력이 안 느는 거겠지.
좀 더 친해지려 노력해야겠다.
객체는 정말 알아야해...

profile
총총

0개의 댓글