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

JESS YANG·2021년 5월 2일
0

프로그래머스

목록 보기
2/13
post-thumbnail

문제

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

내 코드

	public int solution(String[][] clothes) {
		int rlt = 1;
        //1
		Map<String, Integer> map = new HashMap<String, Integer>();
        //2
		for(String [] clo : clothes) {
			map.put(clo[1], map.getOrDefault(clo[1], 0)+1);
		}
		//3
		for(Map.Entry<String, Integer> ent : map.entrySet()) {
			rlt = rlt*(ent.getValue()+1);
		}
        //4
		return rlt - 1;
		
	}

풀이

  1. 의상 종류를 담을 그릇 Map<String, Integer> map 선언
  2. 반복문 돌면서 의상종류별 개수를 증가시키다.
  3. 아래 공식을 적용시킨다. 의상 종류가 3종류가 있고 그 옷의 개수가 각각 {m, n, l} 일때 경우의 수는 다음과 같다.

(m + 1) ( n + 1) ( l + 1)

공식에서 각요소가 +1을 해준 이뉴는 그 옷을 입을수도 있고 안입을 수도 있는 경우의 수를 추가 해줬기 때문이다.
4. 그리고 마지막으로 의상을 전부 선택하지 않은 경우의 수는 제외 시켜줘야 하기 때문에 반환 하기 전에 1을 빼준다.

0개의 댓글