문제 설명
정수배열 numLog 가 주어집니다.
처음에 numLog[0] 에서부터 시작해 "w","a","s","d" 로 이루어진 문자열을 입력으로 받아 순서대로 다음과 같은 조작을 했다고 합시다
- "w" : 수에 1을 더한다
- "s" : 수에 1을 뺀다
- "d" : 수에 10을더한다
- "a" : 수에 10을 뺀다
그리고 매번조작을 할때마다 기록한 정수 배열이 numLog입니다
즉 numLog[i]는 numLog[0]로부터 총 i번의 조작을 가한 결과가 저장되어있습니다
주어진 정수 배열 numLog에 대한 조작을 위해 입력받은 문자열을 return 하는 solution 함수를 완성시켜라
답 1
function solution(numLog) {
const convert = {
'1': 'w', '-1': 's', '10': 'd', '-10': 'a'
};
return numLog.slice(1).map((v, i) => {
return convert[v - numLog[i]]
}).join('')
}
- slice(1) : numLog 배열의 첫번째 요소를 제외한 나머지 요소를 새로운 배열로 반환한다
- map : v 현재 요소 , i 인덱스
- v - numLog[i] 현재 요소와 이전 요소의 차이를 계산하여 convert 해당하는 문자열을 반환
- join : 계산된 문자열을 결합
답 2
function solution(numLog) {
let array = [...numLog]
let answer = [];
for(let i=0;i<array.length;i++){
switch(array[i+1]-array[i]){
case 1:
answer.push('w')
break;
case -1:
answer.push('s')
break
case 10:
answer.push('d')
break;
case -10:
answer.push('a')
break;
}
}
return answer.join('');
}
'기초다지기 > JS 코딩테스트' 카테고리의 다른 글
[Lv0] js 팩토리얼 (0) | 2023.07.18 |
---|---|
[Lv0] 등차수열 (0) | 2023.07.17 |
[js] 2차원 배열 (0) | 2023.07.02 |
[LV0] 특정 문자 a로 만들기 (0) | 2023.06.03 |
Lv0 배열의 원소만큼 추가하기 (0) | 2023.05.21 |