강의로 돌아가기
조성진

첫번째 테스트케이스 시간초과

제가 한 풀이는 각각 의상의 종류에 대해 갯수를 구하고

1개만 입었을 때, 2개만 입었을 때 .... 를 쭉 하는 방법인데 이게 시간 초과 될 것이라고 생각은 했지만..

최대한 시간 단축하기 위해서 구현 했는데 혹시 놓친 부분이 있었는지 체크 좀 해주세요 ㅠㅠ..

작성중인 코드―Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.*;
class Solution {
    static int answer, sum = 1;
    static ArrayList<String> wearable = new ArrayList<>();
    static ArrayList<Integer> wear_cnt = new ArrayList<>();
    static HashMap<String, Integer> map = new HashMap<>();

    public static void wear(int num) {
        for(int i = num + 1; i < wear_cnt.size(); i++) {
            sum *= wear_cnt.get(i);
            wear(i);
            answer += sum;
            sum /= wear_cnt.get(i);
        }
    }

    public int solution(String[][] clothes) {
        answer = 0;
        for(int i = 0; i < clothes.length; i++) {
            if(wearable.contains(clothes[i][1])) map.put(clothes[i][1], map.get(clothes[i][1])+1);
            else {
                wearable.add(clothes[i][1]);
                map.put(clothes[i][1], 1);
            }
        }
        for(int i = 0; i < wearable.size(); i++) {
            wear_cnt.add(map.get(wearable.get(i)));
        }
        wear(-1);
        return answer;
    }
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.