‘프로그래머스 코딩테스트 고득점 Kit’ 문제 입니다. 😀
문제 👉 <코딩테스트 연습 - 위장 | 프로그래머스>
1. 문제
- 주어진 의상을 조합한 수를 리턴한다.
- 의상을 조합할 때는 최소 1개의 옷을 입어야 하고, 의상 종류 당 최대 1개만 입을 수 있다.
- 중복된 의상은 없다.
2. 풀이
해시
를 이용한 문제 풀이
- 주어진 의상을 통해 key는 의상의 종류 value는 의상의 개수를 나타내는 Hash를 생성한다.
- 의상의 개수를 셀 때는 계산하기 쉽게 아무것도 안 입은 경우를 포함한 후 마지막에 모든것을 아무것도 안 입은 경우를 빼기 위해 리턴할 때 -1을 한다.
3. 코드
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
Map<String, Integer> hm = new HashMap<>();
// 아무것도 안 입었을 때도 포함하기 위해 초기 값을 0이 아닌 1로 설정
for(int i=0; i<clothes.length; i++){
hm.put(clothes[i][1], hm.getOrDefault(clothes[i][1], 1) +1);
}
// 조합 계산
for(int i: hm.values()){
answer *= i;
}
// 옷 아무것도 안 입었을 때 -1
return answer-1;
}
}
References
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스] 베스트앨범 [JAVA(자바)] (0) | 2021.11.25 |
---|---|
[프로그래머스] 전화번호 목록 [JAVA(자바)] (0) | 2021.11.25 |
[프로그래머스] 완주하지 못한 선수 [JAVA(자바)] (0) | 2021.11.25 |
댓글