Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[문제풀이] Level2 위장 본문
위장
🪅 부류별 가짓수를 구할때, 부류를 key로 가짓수를 value로 생각할 수 있느냐 => HashMap
🪅 경우의 수(조합)를 구할 수 있느냐
💡 문제 접근 과정
중요한 것은 부류별 '의상의 가짓수'이지 의상의 이름이 아니다
따라서 부류를 key로 두고 해당 부류의 가짓수를 value로 두는 HashMap을 생성
모든 부류마다 +1을 해주는 이유는 안입는 경우의 수를 포함하기 위해서이다.
마지막에 -1을 해주는 이유는 모두 안입는 경우의 수 제거를 위해서이다.
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
// key: 부류, value: 가짓수
Map<String, Integer> map = new HashMap<>();
for(int i = 0; i < clothes.length; i++) {
// 처음 나온 부류이면 가짓수 1
if(map.get(clothes[i][1]) == null) {
map.put(clothes[i][1], 1);
} else {
// 이미 있던 부류이면 기존 가짓수 + 1
map.put(clothes[i][1], map.get(clothes[i][1]) + 1);
}
}
// 모든 부류마다 안입는 경우의 수(+1)씩 추가
// 부류마다 동시에 할 수 있으므로 곱하기
for(String s : map.keySet()) {
answer *= (map.get(s) + 1);
}
// 모두 안입는 경우의 수(1) 빼기
answer--;
return answer;
}
}
'코딩 테스트 > 문제풀이' 카테고리의 다른 글
[문제풀이] Level2 가장 큰 수 (0) | 2023.03.01 |
---|---|
[문제풀이] Level1 K번째 수 (0) | 2023.03.01 |
[문제풀이] Level2 전화번호 목록 (0) | 2023.02.28 |
[문제풀이] Level1 폰켓몬 (0) | 2023.02.28 |
[문제풀이] Level2 기능개발 (0) | 2023.02.28 |
Comments