[알고리즘] Java / 프로그래머스 / 위장

정현명·2022년 5월 9일
0

Programmers

목록 보기
1/3
post-thumbnail

[알고리즘] Java / 프로그래머스 / 위장

문제


문제 링크


접근 방식


옷의 종류를 key로, 해당 종류의 옷 이름 리스트를 value로 하는 맵을 생성하고 저장한다.

각 종류 별로 옷을 선택하지 않거나 옷을 하나만 선택할 수 있으므로 모든 종류에 대해 (옷의 종류 + 1) 를 모두 곱한 값에서 아무 옷도 선택하지 않을 경우의 수인 1을 뺀 값을 출력한다.


코드


import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;

class Solution {
    public int solution(String[][] clothes) {
        HashMap<String, List<String>> map = new HashMap<>();
        
        for(String[] item : clothes) {
        	String name = item[0];
        	String type = item[1];
        	
        	List<String> list = map.getOrDefault(type, new ArrayList<>());
        	list.add(name);
        	map.put(type, list);
        }
        
        int answer = 1;
        for(List<String> list : map.values()) {
        	answer *= list.size()+1; 
        }
        
        return answer - 1;
    }
}
profile
꾸준함, 책임감

0개의 댓글