📌 문제
📌 풀이
function solution(numLog) {
return numLog.reduce((acc, curr, i) => {
if (i === 0) return acc;
const diff = curr - numLog[i - 1];
if (diff === 1) {
return acc + 'w';
} else if (diff === -1) {
return acc + 's';
} else if (diff === 10) {
return acc + 'd';
} else if (diff === -10) {
return acc + 'a';
}
return acc;
}, '');
}
오랜만에 공부를 하다보니 문제를 해석하는데 시간이 좀 걸렸다😓
차근 차근 노트에 정리하면서 해석해보니, 주어진 numLog
배열에서 일단 앞, 뒤 값을 가져와서 '뒤 - 앞' 을 했을 경우 나오는 값으로 문자열을 판단해 return 하면 된다고 생각했다.
예를 들어, numLog[1] - numLog[0] 를 했을 때
값이 1 인 경우 'w' 이고,
-1 인 경우엔 's',
10 인 경우엔 'd',
-10 인 경우엔 'a' 로 판단하면 되는 것이다.
개인적으로 reduce
함수에 익숙해지고 싶어서 이를 사용해 풀었다
- acc : initailValue 를 '' 빈 문자열로 제공했다
- curr : 반복문을 돌면서 도출되는 현재 값이다
if (i === 0) return acc
: 첫 번째 값은 비교하지 않는다- 이후로 초기 값에 각 조건에 맞는 문자열을 추가해 return 하도록 했다
조건문, 반복문 관련 문제를 풀면서 익혀야할 개념을 정리해본다.
문자열을 배열로 변환하는 방법
스프레드 연산자 사용하기! (→ 가장 빠른 속도를 보여준다고 한다)
const arr = [..."melon"]; // ['m', 'e', 'l', 'o', 'n']
배열을 문자열로 변환하는 방법
join 메서드 사용하기!
const str = ['m', 'e', 'l', 'o', 'n'].join(''); // 'melon'
728x90
'배움 기록 > 코테 연습' 카테고리의 다른 글
[프로그래머스] 수열과 구간 쿼리 2 : JavaScript (0) | 2024.12.30 |
---|---|
[프로그래머스] 수열과 구간 쿼리 3 : JavaScript (1) | 2024.12.27 |
[프로그래머스] 이어 붙인 수 : JavaScript (0) | 2024.07.09 |
[프로그래머스] 등차수열의 특정한 항만 더하기 : JavaScript (0) | 2024.06.23 |
[프로그래머스] 더 크게 합치기 : JavaScript (0) | 2024.03.31 |
댓글