99클럽 코테 스터디 6일차 TIL 의상

2024. 7. 28. 02:08·스터디/99클럽 코테 스터디 TIL

📝 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

🔥 시도해본 접근 방식

문제 분류에 해시라는 힌트를 보고 바로 의상 종류를 key로 하여 value에는 갯수를 저장하는 Map을 선언해야 겠다고 생각했다.

그 뒤 처음에는 단순히 의상 종류별 의상 수를 모두 곱한 값이 정답일거라고 생각했으나,

존재하는 모든 의상종류를 하나씩 착용하는 것이 아니었고 최소 한 개의 의상을 입는 조건으로 인해 잘못된 생각이었음을 깨달았다.

그렇기 때문에 의상 종류별 의상 수를 카운팅 할 때 의상을 입지 않을 경우의 수 까지 포함하여 +1을 해주었고

연산이 끝난 후 마지막에 모든 의상을 입지 않는 경우의 수는 제외하기 위해 -1을 해주었다.

 

✨ 성공 코드

import java.util.HashMap;

class Solution {
    public int solution(String[][] clothes) {
        // 옷의 종류별로 갯수를 저장할 Map 선언
        HashMap<String, Integer> map = new HashMap<>();

        // 배열을 순회하면서 옷의 종류별로 갯수를 카운팅한다.
        for (String[] item : clothes) {
            // 옷을 입지 않는 선택지 까지 포함하기 위해 기본값을 1로 준다.
            map.put(item[1], map.getOrDefault(item[1], 1) + 1);
        }

        int answer = 0;

        // 옷을 조합할 수 있는 경우의 수를 계산한다.
        for (int cnt : map.values()) {
            answer = answer == 0 ? cnt : answer * cnt;
        }

        // 위의 연산은 옷을 하나도 입지 않는 케이스가 포함된 연산이므로
        // 옷을 하나도 입지 않은 경우의 수 하나는 제거한다.
        --answer;

        return answer;
    }
}

'스터디 > 99클럽 코테 스터디 TIL' 카테고리의 다른 글

99클럽 코테 스터디 8일차 TIL 기능개발  (0) 2024.07.29
99클럽 코테 스터디 7일차 TIL 하노이의 탑  (0) 2024.07.29
99클럽 코테 스터디 5일차 TIL 전화번호 목록  (0) 2024.07.26
99클럽 코테 스터디 4일차 TIL JadenCase 문자열 만들기  (0) 2024.07.25
99클럽 코테 스터디 3일차 TIL 문자열 내 마음대로 정렬하기  (1) 2024.07.25
'스터디/99클럽 코테 스터디 TIL' 카테고리의 다른 글
  • 99클럽 코테 스터디 8일차 TIL 기능개발
  • 99클럽 코테 스터디 7일차 TIL 하노이의 탑
  • 99클럽 코테 스터디 5일차 TIL 전화번호 목록
  • 99클럽 코테 스터디 4일차 TIL JadenCase 문자열 만들기
Been
Been
  • Been
    Been
    Been
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 언어 (0)
        • Kotlin (0)
      • 안드로이드 (17)
      • iOS (3)
      • Git (1)
      • 스터디 (39)
        • 알고리즘 문제 풀이 (1)
        • 99클럽 코테 스터디 TIL (38)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    Coroutines
    언더라인 제거
    Git
    안드로이드
    RecyclerView
    자바
    밑줄제거
    Androiod
    maxWidth
    깃
    java
    NSR
    debugRuntimeClasspath
    Android
    객체변환
    FragmentStateAdapter
    AndroidID
    아이폰
    99클럽
    개발자취업
    EditText
    IOS
    WRITE EXTERNAL
    쓰기권한
    풀이실패
    nsl
    코딩테스트준비
    항해99
    리싸이클러뷰
    TIL
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Been
99클럽 코테 스터디 6일차 TIL 의상
상단으로

티스토리툴바