본문 바로가기
CodingTest/Programmers

[Programmers] 의상

by 창브로 2025. 3. 29.

[문제 링크]

https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=java

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

[풀이 과정]

입출력 예시를 보자마자 일단 옷 종류별 갯수를 map에 담아야 겠다고 생각했습니다.

map을 통해 경우의 수를 계산합니다.

여기서 중요한 것은 (옷의 갯수 + 하나도 입지 않는 경우)를 계속 곱해줘야 한다는 것입니다.

모든 경우의 수 구하는 공식은 아시죠?!

 

그리고 answer이 나오는데 answer이 나오면 -1을 하고 return 해줍니다.
(모든 옷을 하나도 안 입은 경우를 빼줘야 하기 때문에)

 

[코드]

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        Map<String, Integer> map = new HashMap<>();
        
        // 의상 종류별 개수 저장
        for (String[] cloth : clothes) {
            map.put(cloth[1], map.getOrDefault(cloth[1], 0) + 1);
        }
        
        int answer = 1;
        
        // 경우의 수 계산
        for (int count : map.values()) {
            answer *= (count + 1); // 의상을 입는 경우 + 입지 않는 경우
        }
        
        return answer - 1; // 아무것도 입지 않는 경우 제외
    }
}

[회고]

쉬웠습니다.

 

 

 

 

질문과 피드백은 언제나 환영입니다.

감사합니다.

'CodingTest > Programmers' 카테고리의 다른 글

[Programmers] 기능개발  (0) 2025.04.03
[Programmers] 베스트앨범  (0) 2025.04.01
[Programmers] 전화번호 목록  (0) 2025.03.28
[Programmers] 포켓몬  (1) 2025.03.27
[Programmers] 완주하지 못한 선수  (0) 2025.03.27