[programmers] 의상

2024. 9. 20. 20:37·알고리즘 오답노트/JAVA

문제 풀이 : 의상의 이름은 중요하지 않고, 의상의 종류별로 몇 가지의 의상이 있는지 확인한 후 조합하는 경우의 수를 구해야 함

각 옷마다 의상의 수+1이 종류 별 경우의 수인데, 예를 들어 위 표에서 얼굴은 안경을 쓰는 경우, 선글라스를 쓰는 경우, 아무것도 쓰지 않는 경우 이렇게 2+1개의 종류이므로 총 경우의 수는 3x2x2x2임

이때! 모든 하나도 안 입는 경우가 발생하므로 1을 빼주어 3x2x2x2-1이 됨

 

import java.util.HashMap;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;
        
        HashMap<String, Integer> map = new HashMap<>();
        
        for(String[] c: clothes) {
            String category = c[1];
            map.put(category, map.getOrDefault(category, 0)+1);
        }
        
        for(int i: map.values()) {
            answer *= (i+1);
        }
        
        return answer-1;
    }
}

<몰랐던 부분>

map.put(category, map.getOrDefault(category, 0)+1);에서 getOrDefault는 키가 카테고리인 것의 값이 없으면 기본 값을 0으로 갖고 1을 더한다는 뜻임

즉 처음에는 처음 저장되는 값이므로 기본값 0에 +1을 하여 해당 카테고리의 값이 1로 저장되고, 그 다음엔 1+1인 2로 저장됨

이런 방식으로 해당 카테고리의 의상이 몇 개인지 알 수 있게 됨

'알고리즘 오답노트 > JAVA' 카테고리의 다른 글

[programmers] 같은 숫자는 싫어  (0) 2024.09.20
[programmers] 전화번호 목록  (4) 2024.09.13
[programmers] 완주하지 못한 선수  (0) 2024.09.11
[programmers] 폰켓몬  (0) 2024.09.11
'알고리즘 오답노트/JAVA' 카테고리의 다른 글
  • [programmers] 같은 숫자는 싫어
  • [programmers] 전화번호 목록
  • [programmers] 완주하지 못한 선수
  • [programmers] 폰켓몬
bogyeom
bogyeom
백엔드 개발자 준비중
  • bogyeom
    딩코링코
    bogyeom
  • 전체
    오늘
    어제
    • 분류 전체보기 (10)
      • Node.js (0)
        • 크리스마스 미니홈피 (0)
      • SPRINGBOOT (2)
        • 음악 스트리밍 서비스 (2)
        • 식당 추천 서비스 (0)
      • 우아한 테크코스 프리코스 (3)
      • 알고리즘 오답노트 (5)
        • JAVA (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
bogyeom
[programmers] 의상
상단으로

티스토리툴바