HashMap을 이용해서 문제를 해결할 수 있습니다.
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
HashMap<String, Integer> hashmap = new HashMap<>();
for(String[] cloth : clothes){
String category = cloth[1]; // 의상의 종류를 추출
hashmap.put(category, hashmap.getOrDefault(category, 0) + 1);
}
int answer = 1;
for(int count : hashmap.values()){
answer *= (count + 1);
}
return answer - 1;
}
}
hashmap에는 각 의상이 종류별로 몇 개 있는지 저장합니다.
String은 카테고리 이름(ex. "headgear", "eyewear")을 저장하고, Integer는 각 카테고리의 의상 개수를 저장합니다.
for 루프를 사용해 의상의 종류와 개수를 추출합니다.
(ex. cloth[0]: 의상의 이름 (ex. "yellowhat"), cloth[1]: 의상의 종류 (ex. "headgear"))
hashmap.put(category, hashmap.getOrDefault(category, 0) + 1)는 category 키가 hashmap에 이미 존재하면 해당 값을 반환하고, 없다면 기본값 0을 반환합니다. 이렇게 카테고리의 의상 개수를 하나씩 증가시킵니다.
return answer - 1을 통해 아무것도 입지 않는 경우를 제외하고 리턴합니다.
.
.
.
문제는 아래에서 확인할 수 있습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스_JAVA_알고리즘] 디스크 컨트롤러 #힙 #우선순위 큐 (1) | 2024.12.20 |
---|---|
[프로그래머스_JAVA_알고리즘] 더 맵게 #힙 #우선순위 큐 (0) | 2024.12.18 |
[프로그래머스_JAVA_알고리즘] 문자열 정렬하기 (2) #정렬 (1) | 2024.11.02 |
[프로그래머스_JAVA_알고리즘] H-Index #정렬 (0) | 2024.11.01 |
[프로그래머스_JAVA_알고리즘] 가장 큰 수 #정렬 (1) | 2024.10.31 |