CODING TEST/COS Pro
[2급] 단체 티셔츠 주문하기 - JAVA
iamyuunzo
2025. 9. 8. 21:01
1. 문제 설명 및 정리
학생들이 원하는 티셔츠 사이즈가 주어졌을 때, 각 사이즈별 신청 인원을 세어서 [XS, S, M, L, XL, XXL] 순서로 배열에 담아 반환하는 문제. 입력으로 학생들이 선택한 사이즈들이 쭉 들어올 거고, 우리는 이걸 세어서 각 사이즈가 몇 명인지 카운트한 배열을 만들어야 함. (단, 출력 순서는 위에 적은 순서대로.)
입력: {"XS", "S", "L", "L", "XL", "S"}
출력: [1, 2, 0, 2, 1, 0] => XS 사이즈가 1명, S 사이즈가 2명, M 사이즈가 0명, L 사이즈 2명, XXL은 0명.
2. 문제 유형
- 구현(Implementation)
- 카운트 배열 패턴 (문자열을 읽어서 → 인덱스와 매핑해서 → 개수를 세는 전형적인 유형)
3. 정답 코드
import java.util.*;
class Main {
public int[] solution(String[] shirtSize) {
// 사이즈별 개수를 저장할 배열 (XS, S, M, L, XL, XXL 순서)
int[] answer = new int[6];
// (1) 기본 for문: 인덱스로 접근
// for (int i = 0; i < shirtSize.length; i++) {
// String size = shirtSize[i]; // i번째 값 꺼내기
// (2) for-each문: 입력 배열을 하나씩 확인하면서 카운트
for (String size : shirtSize) {
switch (size) {
case "XS":
answer[0]++; // XS → 인덱스 0
break;
case "S":
answer[1]++; // S → 인덱스 1
break;
case "M":
answer[2]++; // M → 인덱스 2
break;
case "L":
answer[3]++; // L → 인덱스 3
break;
case "XL":
answer[4]++; // XL → 인덱스 4
break;
case "XXL":
answer[5]++; // XXL → 인덱스 5
break;
}
}
return answer;
}
// ------------------------------------------------------------------------------
// 테스트 코드
public static void main(String[] args) {
Main sol = new Main();
String[] shirtSize = {"XS", "S", "L", "L", "XL", "S"};
int[] ret = sol.solution(shirtSize);
System.out.println("solution 메소드의 반환 값은 " + Arrays.toString(ret) + " 입니다.");
}
}
4. 정답 코드 풀이
- int[] answer = new int[6]; → 6개 사이즈 개수를 담을 6칸짜리 배열 생성 후 저
- for (String size : shirtSize) → 입력으로 들어온 사이즈를 하나씩 확인
- switch-case → 해당 사이즈에 맞는 인덱스 증가
- 최종적으로 [XS, S, M, L, XL, XXL] 순서대로 신청 인원이 들어간 배열 반환
→ 사이즈 이름이 무엇인지에 따라 배열의 해당 위치를 +1 해준다.
예를 들어 "S"가 나오면 answer[1]++ 해서 S 개수를 늘림.