문제 출처 - Programmers
문제는 여기
[풀이]
1. HashMap에 옷의 종류별로 개수를 저장해준다.
2. 옷마다 저장된 수 + 1을 곱해준다. << 선택하지 않는 경우의 수
3. 모든 경우를 구하고 나면, 아무것도 선택하지 않는 경우의 값을 1개 빼준다.
[접근]
1. 옷의 종류를 선택하는 경우의 수들을 곱해서 아무것도 선택하지 않는 경우 1가지를 빼주면 되겠다고 생각하였다.
[코드]
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
HashMap<String, Integer> map = new HashMap<>();
for (String[] str : clothes) {
String type = str[1];
if (map.containsKey(type))
map.put(type, map.get(type) + 1);
else
map.put(type, 1);
}
Iterator<Integer> it = map.values().iterator();
int answer = 1;
while(it.hasNext())
answer *= it.next().intValue() + 1;
return answer - 1;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 음양더하기 (JAVA) (0) | 2022.03.05 |
---|---|
[프로그래머스] 내적 (JAVA) (0) | 2022.03.04 |
[프로그래머스] 크레인 인형뽑기 게임 (JAVA) (0) | 2022.03.04 |
[프로그래머스] 숫자 문자열과 영단어 (JAVA) (0) | 2022.03.04 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (JAVA) (0) | 2022.03.02 |