프로그래머스 : 5명씩

Digeut·2024년 4월 1일
0

프로그래머스

목록 보기
152/164

❔문제설명

최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.

🤔아이디어

각 배열의 0부터 시작해서 5씩 더해져나가는 값을 반환하면 되는거아닌가?

💡코드풀이

import java.util.*;

class Solution {
    public String[] solution(String[] names) {
        String[] answer;
        List<String> arr = new ArrayList<>();
        for(int i  = 0 ; i < names.length ; i += 5){
            arr.add(names[i]);
        }
        answer = arr.stream().toArray(String[]::new);
        return answer;
    }
}

✔️문법확인

  • stream 활용법
    List → String[] : List.stream().toArray(String[]::new)

String[]::new : 생성자 레퍼런스. new String[];과 동일.
여기서 new String[]말고 생성자 레퍼런스(스트림의 요소를 다른 종류의 배열로 변환할 때도 유용)를 사용하는 이유는 toArray 메서드는 배열을 생성할 때 요소의 타입을 명시적으로 지정해야 하므로, 생성자 레퍼런스를 사용하면 해당 배열을 생성하는 데 필요한 생성자를 명확하게 지정할 수 있기때문.

profile
개발자가 될 거야!

0개의 댓글