Hayden's Archive

[알고리즘] 프로그래머스 : 위장 본문

Algorithm

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

_hayden 2021. 2. 20. 23:45

알고리즘 문제 출처 : programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

내가 작성한 코드

HashMap을 이용해서 각 key(의상 종류)에 따른 value(의상 개수)를 담는다. 그 뒤 HashMap에 들어간 모든 값들을 향상된 for문에서 뽑아내는데, (특정 의상 종류의 의상 개수 + 그 의상 종류를 아예 안 입는 선택지 1개)를 모두 곱하고 모든 의상을 입지 않는 1가지 경우의 수를 빼면 정답을 구할 수 있다.

import java.util.HashMap;
import java.util.Map;

public class Solution {

	public int solution(String[][] clothes) {
		int answer = 1;
		Map<String, Integer> map = new HashMap<>();
		for(int i=0; i<clothes.length; i++) {
			if(map.get(clothes[i][1]) == null) {
				map.put(clothes[i][1], 0);
			}
			map.put(clothes[i][1], map.get(clothes[i][1])+1);
		}
		for(Integer count : map.values()) {
			answer *= (count + 1);
		}
		return answer-1;
	}
}