[프로그래머스]위장(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개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN