본문 바로가기

Algorithm/Programmers

[프로그래머스_JAVA_알고리즘] 의상 #해시

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