5명씩
날짜 | 2023-10-08 |
사용 언어 | Java |
문제 유형 | 배열, 수학 |
정답률 | 89% |
문제 URL | https://school.programmers.co.kr/learn/courses/30/lessons/181886 |
문제 #
문제 설명 #
최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names
가 주어질 때, 앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.
제한사항 #
- 5 ≤
names
의 길이 ≤ 30 - 1 ≤
names
의 원소의 길이 ≤ 10 names
의 원소는 영어 알파벳 소문자로만 이루어져 있습니다.
나의 풀이 #
class Solution {
public String[] solution(String[] names) {
String[] answer = new String[(names.length-1)/5+1];
for(int i = 0; i<names.length; i=i+5) {
answer[i/5] = names[i];
}
return answer;
}
}
다른 사람의 풀이 #
//반올림을 이용한 계산
import java.util.stream.IntStream;
class Solution {
public String[] solution(String[] names) {
Double length = Math.ceil(names.length/5.0);
String[] answer = new String[length.intValue()];
for(int idx=0; idx<length; idx++) {
answer[idx] = names[idx*5];
}
return answer;
}
}
// int형으로 캐스팅도 가능하다.
// int length = (int)Math.ceil(names.length/5.0);
// String[] answer = new String[length];
좌(casting) 우(stream) 계산식 이용시에는 0.05ms 미만의 시간을 보였다.