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