Today
-
Yesterday
-
Total
-
  • 프로그래머스 : 위장
    코딩테스트 문제 풀이/프로그래머스 2023. 11. 20. 00:01

    문제 설명

    내 코드

    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)
    .
    .
    .
    이런식으로 진행된다고 어느 천사같은 분이 올려놔 주셨다 ㅠ
    이글 못봤다면 못풀었을것 같다.🥲

     

Designed by Tistory / Custom by 얼거스