728x90
반응형
24년 12월 9일
해결한 문제 갯수: 36
문제 설명
문제 분석
- arr의 길이가 홀수라면, arr의 모든 짝수 index 위치에 n을 더한 배열을 반환합니다.
- arr의 길이가 짝수라면, arr의 모든 홀수 index 위치에 n을 더한 배열을 반환합니다.
- 나머지 요소는 그대로 유지합니다.
첫 번째 접근: 조건문을 사용해 요구사항을 그대로 옮겨보기
function solution(arr, n) {
let isOddLength = arr.length % 2
return arr.map((item, i) => {
if(isOddLength && !(i % 2)) {
return item + n
} else if(!isOddLength && i % 2) {
return item + n
}
return item
})
}
문제의 요구사항에 맞춰 순서대로 코드를 작성했습니다.
1. isOddLength: arr의 길이가 홀수인지를 판단하는 Boolean type의 변수를 선언합니다.
2. map : 배열의 각 원소를 순회하며 조건에 따라 값을 변환합니다.
- 배열의 길이가 홀수(idOddLength가 true)이고 인덱스가 짝수(!(i % 2))인 경우
- 배열의 길이가 짝수(idOddLength가 true)이고 인덱스가 홀수(i % 2)인 경우
- 조건에 해당하는 경우, 해당 원소에 n을 더하고, 그렇지 않으면 원래 값을 반환합니다.
두 번째 접근: 로직 단순화
function solution(arr, n) {
return arr.map((item, i) => {
return arr.length % 2 !== i % 2 ? item + n : item
})
}
변경사항
- 두 개의 조건문을 하나의 비교연산으로 통합했습니다.
- 복잡한 논리 구조를 단순한 수식으로 표현했습니다.
- 이전엔 선언된 불필요한 변수(isOddLength)를 제거했습니다.
728x90
반응형
'자료구조 및 알고리즘 > JavaScript Practice' 카테고리의 다른 글
[프로그래머스] 왼쪽 오른쪽 (1) | 2024.12.11 |
---|---|
[프로그래머스] 배열 만들기 5 (0) | 2024.12.11 |
JS Practice) 프로그래머스 Lv.1 : 체육복 (0) | 2023.08.31 |
JS Practice) 프로그래머스 Lv.1 : 숫자 짝꿍 (0) | 2023.08.30 |
JS Practice) 프로그래머스 Lv.1 : 옹알이 (2) (0) | 2023.08.29 |