eatthefrog
코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(1) 본문

배열의 원소만큼 추가하기
[ 문제 정의 ]
입력: 빈 배열: X, numnber type array: arr,
출력: number type array: answer
f(x): arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 x의 맨뒤 a를 a번추가하는 일을 반복한뒤의 배열 x를 return
의사코드
1. for문 순회 : arr의 앞ㅇ서부터 차례대로 원소를 보면서
2. 중첩 반복문,push(): 원소가 a라면 x의 맨뒤 a를 a번추가하는 일 반복
function solution(arr) {
let answer = [];
let number = 0;
for (const item of arr){
for (let i=0; i<item; i++){
answer.push(arr[number])
}
number++;
}
return answer;
}
[ 개선 포인트 => number 변수가 불필요하다.]
- for...of 문으로 item 자체를 꺼내 쓰고 있기 때문에, 굳이 인덱스를 따로 세서 arr[number]를 사용할 필요가 없다.
- 이미 item이 원하는 값이야! 이걸 바로 push() 하면 됀다.
[ 습득한 지식 ]
반복문 형태 item이 의미하는 것
| for (const item of arr) | item은 배열의 값 |
| for (let i = 0; i < arr.length; i++) | i는 인덱스, arr[i]가 값 |
표현 의미 예시 (arr = [3, 1, 2])
| item | 배열에서 꺼낸 값 | 3, 1, 2 |
| arr[item] | 배열의 인덱스가 item인 값 | arr[3] → undefined (없는 인덱스!) |
배열에서 문자열 대소문자 변환하기
[ 문제정의 ]
입력:string type array: strArr
출력:string type array: answer
f(x): 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환
[ 문법 ]
배열 인덱스 홀수 짝수 구분 -> for문에서 i를 인덱스로보고 홀,짝구분 가능할듯 i%2==1
대소문자 변홤 메서드 -> toLowerCase()와 toUpperCase()
[ 의사코드 ]
1. for문 반복: 배열의 처음부터끝까지 순회하면서
2. 조건문: 짝수 인덱스는 소문자toLowerCase(), 홀수 인덱스는 대문자toUpperCase()
function solution(strArr) {
var answer = [];
for (let i=0; i<strArr.length; i++){
if(i % 2 == 1){
answer.push(strArr[i].toUpperCase());
}
else {
answer.push(strArr[i].toLowerCase());
}
}
return answer;
}
[ 개선 포인트 ]
1. == 대신 ===을 써보자!
- JavaScript에서는 ==는 타입을 느슨하게 비교하고, ===는 타입까지 엄격하게 비교한다.
- 코딩 테스트에서는 보통 문제없이 작동하지만, 실무나 리팩토링 관점에서는 ===이 더 안전하다.
2. map()을 활용한 방법도 생각해보자!
- 지금은 for문이 명확하지만, map()도 연습해두면 좋을 도구다.
- return strArr.map((str, i) => i % 2 === 1 ? str.toUpperCase() : str.toLowerCase() ); 내가 지금 짠 것과 동일한 기능을 하지만 한 줄로 깔끔하게 표현할 수 있다.

👍오늘 잘한점
1. 문제 이해도, 구현 정확도, 문법 사용
2. 내가 아는 지식들을 잘 짬뽕 시켜서 풀이 구현
🍀발전 포인트
1. for문대신 map을 활용하여, 더 간결한 표현 가능 => 유데미 map복습!!
'코딩테스트' 카테고리의 다른 글
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(3) (0) | 2025.05.08 |
|---|---|
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(2) (0) | 2025.05.02 |
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(2) (0) | 2025.05.01 |
| 자바스크립트 코딩 테스트: 배열 입문 문제(2) (1) | 2025.04.26 |
| 자바스크립트 코딩 테스트: 배열 원소의 길이 (1) | 2025.04.22 |