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

📋 풀이
import java.util.*;
class Solution {
public String[] solution(String[] names) {
// 총 필요한 요소의 수 계산
int resultSize = (names.length + 4) / 5;
String[] answer = new String[resultSize];
// 인덱스 카운터
int index = 0;
// 5 간격으로 요소를 선택하여 배열에 추가
for (int i = 0; i < names.length; i += 5) {
answer[index++] = names[i];
}
return answer;
}
}
- resultSize에 names.length + 4
최소 1개라고 가정하면 +4는 해줘야 5로 나눌 수 있기 때문
ex) 1 + 4/ 5 = 1개의 팀 /// 4 + 5 / 5 = 2개의 팀 (팀1: 5명 / 팀2: 4명) - 어차피 그룹이 딱 5로 나뉘어질 필요는 없음
- 답 반환할 answer 배열 선언 : 인덱스에 resultSize 넣어줌
- 반복문(for문) : 5 간격으로 names 배열을 순회하며, 선택된 요소를 answer 배열에 추가
- answer 배열에 값을 추가한 후에 index를 증가시킴
풀다가 머리 안돌아가서 참곡좀했다
난 빡대가리인게 틀림없음 ㅅㅂㅠㅠ 울고싶다
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [Lv.0] 문자열 돌리기 (0) | 2024.07.19 |
|---|---|
| [Lv.0] 대소문자 바꿔서 출력하기 (0) | 2024.07.19 |
| [Lv.0] 조건에 맞게 수열 변환하기1 (2) | 2024.07.19 |
| [Lv.0] 길이에 따른 연산(배열) (0) | 2024.07.18 |
| [Lv.0] 뒤에서 5등 위로 (1) | 2024.07.18 |