본문 바로가기
프로그래밍 문제/프로그래머스

[프로그래머스] 위장(JAVA)

by 테크케찰 2020. 9. 17.

programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

import java.util.HashMap;

class Solution {
    public int solution(String[][] clothes) {
        HashMap<String, Integer> hashmap=new HashMap<>();
        for(int i=0;i<clothes.length;i++) {
        	if(hashmap.containsKey(clothes[i][1])) hashmap.replace(clothes[i][1], hashmap.get(clothes[i][1])+1);
        	else hashmap.put(clothes[i][1], 1);
        }
        int answer=1;
        for(int n:hashmap.values()) {
        	answer*=(n+1);
        }
        return answer-1;
    }
}

이 문제는 HashMap을 이용해서 풀어보았습니다.

HashMap은 Key(키)와 Value(값)으로 이루어져있는데요, 이 문제에서는 Key가 의상의 종류, Value는 의상의 종류별 개수를 저장합니다.

전체 경우의 수는 의상의 종류별 개수들의 곱으로 이루어지므로 answer에 이를 계산해서 저장해줍니다.