/////////
Search
📝

위장

카카오 문제(신고)보다 쉬운것 같다..^^
public class Programmers42578 { //위장 https://school.programmers.co.kr/learn/courses/30/lessons/42578 public static int solution(String[][] clothes) { HashMap<String,Integer> numOfClothes = new HashMap<>(); for (String[] clothe : clothes) { String category = clothe[1]; //카테고리 저장 if(numOfClothes.get(category)==null){ //카테고리 별로 갯수 저장 numOfClothes.put(category,1); continue; } numOfClothes.put(category,numOfClothes.get(category)+1); } int answer=1; for (Integer i : numOfClothes.values()) { //전체 경우의수 = 각각의 경우의수 +1 을 다 곱한 뒤 1을 뺌(전부 안선택하는 경우) answer*=(i+1); } return answer-1; } public static void main(String[] args) { String[][] a = {{"yellow_hat", "headgear"}, {"blue_sunglasses", "eyewear"}, {"green_turban", "headgear"}}; System.out.println(solution(a)); } }
Java
복사
카테고리별로 옷의 개수를 저장한다 (Hash Map 사용) 마지막 정답 내기가 오히려 더 어려운것 같다.
(카테고리별 옷 종류+1)을 각 카테고리별로 구해 곱해준 뒤 마지막으로 1을 빼주어야 한다.
옷을 입을수 있는 경우의수 = 옷 가지수 + 안입는 경우의 수 전체 경우의 수 = 각 카테고리 별 입을 수 있는 경우의 수를 곱한 수 - 아무것도 안입는 경우의 수