[문제 링크]
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 |