문제를 직접 풀어보실 경우 여기를 클릭해 주세요.
문제 설명
최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names
가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.
제한사항
- 5 ≤
names
의 길이 ≤ 30 - 1 ≤
names
의 원소의 길이 ≤ 10 names
의 원소는 영어 알파벳 소문자로만 이루어져 있습니다.
입출력 예
names | result |
---|---|
["nami", "ahri", "jayce", "garen", "ivern", "vex", "jinx"] | ["nami", "vex"] |
입출력 예 설명
입출력 예 #1
- 앞에서부터 5명씩 두 그룹으로 묶을 수 있습니다. ["nami", "ahri", "jayce", "garen", "ivern"], ["vex", "jinx"] 이 두 그룹에서 가장 앞에 서있는 사람들의 이름을 담은 리스트인 ["nami", "vex"]를 return합니다.
문제 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function solution(names) {
const result = [];
// 현재 그룹을 담을 배열
let group = [];
for (const name of names) {
// 현재 그룹에 이름 추가
group.push(name);
if (group.length === 5 || names.indexOf(name) === names.length - 1) {
// 현재 그룹이 5명이거나 마지막 사람인 경우
result.push(group[0]); // 현재 그룹의 가장 앞에 있는 사람 이름을 결과 배열에 추가
group = []; // 다음 그룹을 위해 그룹 배열 초기화
}
}
return result;
}
성능 요약
메모리: 33.1 MB
시간: 0.15 ms