프로그래머스 : 위장

김아무개·2023년 3월 16일
0

프로그래머스

목록 보기
4/41

문제 설명

내 코드

package codingtest.programmers;

import java.util.HashMap;

public class Test02 {
    public static int solution(String[][] clothes) {
        int answer = 0;
        
        HashMap<String, Integer> h = new HashMap<>();
        for (String[] s: clothes) {
            h.put(s[1], 0);
        }

        if (h.size() == 1) return clothes.length;

        for (String[] s: clothes) {
            h.put(s[1], h.get(s[1]) + 1);
        }

        for (int i : h.values()) {
            answer += i * (1 + answer);
        }

        return answer;
    }
}

아오
질문하기 참고해서 진짜 겨우겨우 풀었다
코딩테스트는 내일부턴 슥 보고 못풀겠으면 건너뛰거나
다른사람 문제 보고 이해해보다가 안되면 넘겨야겠다.
해야될 공부를 못하게 되서 너무 속상 😬

1. 옷 몇종류인지 hash map 이용해서 찾기

HashMap<String, Integer> h = new HashMap<>();
for (String[] s: clothes) {
    h.put(s[1], 0);
}

hash map의 키는 중복될수 없음을 이용해서 옷의 종류만 hash map에 담았다.

2. 옷이 1종류일 경우

if (h.size() == 1) return clothes.length;

옷의 개수 반환하고 종료

3. 옷 종류별 수량 세기

for (String[] s: clothes) {
    h.put(s[1], h.get(s[1]) + 1);
}

4. 총 나올수 있는 경우의 수 계산

for (int i : h.values()) {
    answer += i * (1 + answer);
}

질문하기에 어느분이 공식 유도해주셔서 보고 풀었다 ㅠㅠ
1
1 + (2 + 2 * 1)
1 + (2 + 2 * 1) + (3 + 3 * 5)
1 + (2 + 2 * 1) + (3 + 3 * 5) + (4 + 4 * 23)
.
.
.
이런식으로 진행된다고 어느 천사같은 분이 올려놔 주셨다 ㅠ
이글 못봤다면 못풀었을것 같다.🥲

profile
Hello velog! 

0개의 댓글