Hayden's Archive
[알고리즘] 프로그래머스 : 위장 본문
알고리즘 문제 출처 : programmers.co.kr/learn/courses/30/lessons/42578
내가 작성한 코드
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;
}
}