[JS] 프로그래머스 코딩테스트 Lv.0

[2023.11.9] 수 조작하기1 & 뒤에서 5등 위로

yeongk0825 2023. 11. 9. 23:12

수 조작하기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"로 이루어진 문자열입니다.

 

답안
const solution = (n, control) => {
    // 문자열 control의 각 요소들을 각각의 문자열로 배열 안에 담기(스프레드 문법)
    return [...control].reduce((acc, cur) => {
        if(cur === "w"){
            return acc + 1;
        }else if(cur === 's'){
            return acc - 1;
        }else if(cur === 'd'){
            return acc + 10;
        }else if(cur === 'a'){
            return acc - 10;
        }
    }, n)
}

 


뒤에서 5등 위로

정수로 이루어진 리스트 num_list가 주어집니다. num_list에서 가장 작은 5개의 수를 제외한 수들을 오름차순으로 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

답안
const solution = (num_list) => {
    // 오름차순 정렬하기 sort((a, b) => a - b)
    // 내림차순 정렬하기 sort((a, b) => b - a)
    // slice(a) : a번째 전까지는 삭제
    // slice(start, end) : start 인덱스부터 end 이전까지만 남기기
    return num_list.sort((a, b) => a - b).slice(5)
}