
푼 문제 : 5명씩
https://school.programmers.co.kr/learn/courses/30/lessons/181886
문제 설명
최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.
제한사항
입출력 예
| my_string | result |
|---|---|
| ["nami", "ahri", "jayce", "garen", "ivern", "vex", "jinx"] | ["nami", "vex"] |
나의 풀이
for(var i=0; i<names.length; i+=5)
answer.push(names[i]);
- index를 사용하기 위해 기본적인 for문을 사용하였다. for in으로도 할 수 있는지 해봐야겠다.
- 5명씩 탈 수 있는 놀이기구이기 때문에 i가 반복 될 때마다 5씩 증가 되도록 했다.
- push() : 배열의 가장 마지막에 새로운 항목을 추가
TIL
예전에 풀지 못했던 문제를 다시 시도해보았다. 예전 풀이들을 보니 너무 어렵게 접근 했던 것 같다.
예전 풀이 1
var a = names.slice(0, 5);
var b = names.slice(5, names.length);
answer.push(a[0]);
answer.push(b[0]);
예전 풀이 2
names.forEach((v, i)=>{
if(i<names.length/5+1)
var a = names.slice(i, i+5);
answer.push(a[0]);
});
이때는 forEach를 배운지 얼마 되지 않아 배열이 나오면 무조건 forEach로 풀려고 했었던 것 같다. 상황에 맞는 방법이 있음을 다시금 깨달았다.