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 개수를 늘림.