eatthefrog
자바스크립트 코딩 테스트: 배열 원소의 길이 본문
문제
: 문자열 배열 strlist가 매개변수로 주어진다. strlist 각 원소의 길이를 담은 배열을 return 하도록 solutin 함수를 완성해주세요.
https://school.programmers.co.kr/learn/courses/30/lessons/120854
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
제한사항과 출제차의 의도
1) 1 ≤ strlist 원소의 길이 ≤ 100
: 빈 문자열("")은 없다는 보장이다. 문자열의 길이는 최대 100으로 너무 길지 않다. 그러므로 시간복잡도 걱정 없이 O(N)으로 구성해도 성능이 괜찮다.
2) strlist는 알파벳 소문자, 대문자, 특수문자로 구성되어 있다.
: 문자열에 숫자/한글/공백/이모지는 포함 안되므로 단순히 .length로 개수 세는 로직이면 충분하는 뜻이다. 예외처리나 필터링이 필요없다는 걸 말해주는 것이다.
문제 정의
1) 입력: 문자열 배열 strlist
2) 출력: 각 문자열의 길이를 요소로 갖는 배열
사용하면 좋을 문법
1. Array.prototype.map()
- map((el) => el.length) 형태로 사용 가능
2. String.prototype.length
- 예: "apple".length → 5
의사 코드 작성하기
1. 입력으로 문자열 배열 strlist가 주어진다
2. 결과를 저장할 빈 배열 answer을 만든다
3. strlist 배열의 각 문자열에 대해 반복하면서:
- 현재 문자열의 길이를 구한다
- 그 길이를 answer 배열에 추가한다
4. 반복이 끝나면 answer 배열을 반환한다
코드 작성하기
// 1. 입력으로 문자열 배열 strlist가 주어진다.
function solution(strlist) {
// 2. 결과를 저장할 빈 배열 answer을 만든다.
var answer = [];
// 3. strlist 배열의 각 문자열에 대해 반복하면서,
for(const i of strlist) {
// 3-1. 현재 문자열의 길이를 구하고, 그 길이를 answer 배열에 추가한다.
answer.push(i.length);
}
return answer;
}
개선된 코드
// i는 일반적으로 인덱스 변수로 자주 사용되므로 변수명을 더 직관적으로 바꿈
for (const str of strlist) {
answer.push(str.length);
}
// 함수형 프로그래밍 사용
function solution(strlist) {
return strlist.map(str => str.length);
}
// for..of 는 리턴값이 없고, 그저 반복을 할때 적절하다.
// 이 문제같은 경우는 새 배열을 retrun하는 map()사용이 더 적절하다.
사용된 배열 관련 기법(for, map, push, .length등의 기본기)
1) 배열 맨끝에 요소 추가하기: push() 메소드
사용 방법: 배열.push(요소)
2) 문자열의 길이 구하기 : legnth 메소드
사용 방법: string.length
3) for..of 문법
사용 방법: for (변수 of 배열) { 반복동작부분 }
문제 분류하기
: 이번 문제 [ 문자열 배열 strlist]의 각 요소의 길이를 구해서 새 배열로 리턴]은 반복만 있으므로 유형 1번 문제다.
- 반복 O → 각 요소 순회하면서 .length 구하기
- 분기 X -> 조건문 필요 없음
- 자료구조 선택 X -> 배열 하나만 쓰면 됨
- 특별한 알고리즘 X -> map또는 반복문 있으면 됨

이해했다고 생각했는데, 손으로 구현하려니 작성법이 헷갈렸다. 이 부분은 검색으로 해결 했으니 Good, 반복해서 문제를 풀다보면 손에 익을 것이다. 그리고 한번에 문제를 풀지는 못했지만, 다른 사람 답 안보고 생각해서 문제를 푼점이 짱이다!
아쉬운점은, 의사코드 작성을 지피티의 도움을 받아서 작성했다는 점이다. 이번주 동안 프로그래머스 코딩테스트 입문, 배열 파트 다 풀자!
목표는 의사코드 감잡기~~~! 코테 연습 1일차 치고,아주 좋은 시작이다~~~~
배열 원소의 길이 [ ]
배열의 유사도 [ ]
배열의 평균값 [ ]
배열 뒤집기 [ ]
배열 두 배 만들기 [ ]
배열 자르기 [ ]
배열 회전시키기 [ ]
잘라서 배열로 저장하기 [ ]
'코딩테스트' 카테고리의 다른 글
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(3) (0) | 2025.05.08 |
|---|---|
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(2) (0) | 2025.05.02 |
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(2) (0) | 2025.05.01 |
| 코딩테스트자바스크립트 코딩 테스트: 배열 기초 문제(1) (0) | 2025.04.30 |
| 자바스크립트 코딩 테스트: 배열 입문 문제(2) (1) | 2025.04.26 |