[Spring#37] Spring 개인과제 : Test / 알고리즘 : 할인행사

김한준 Hanjun Kim·2023년 12월 1일
0

내일배움캠프

목록 보기
38/70

알고리즘

		// 원하는 제품 수 만큼 리스트 생성
        // banana 3개, apple 2개 이런식으로
        List<String> wanted = new ArrayList<>();
        for (int i = 0; i < number.length; i++) {
            for (int j = 1; j < number[i] + 1; j++) {
                wanted.add(want[i]);
            }
        }
        
 
        // 할인 일 수 -9 만큼 반복하면서
        // 플래그를 두고
        // Linkedhashmap을 사용해서 정렬되는 맵을 선언함
        // discount의 0~10번째 값을 Map에 넣고
        // wanted의 값을 Map에 넣어주는데, 이때 같은것이 있다면 -1, 없다면 -1을 넣음
        // = dismap에는 wanted의 pot이 없기 때문에 -1이 들어가게 됨.
        // = dismap은 chicken = 1, banana = -1, apple = 1, rice = 0, pork = 0, pot = -2
        // 고로 flag = false, 다음것으로 넘어감
        for (int i = 0; i < discount.length-9; i++) {
            Boolean flag = true;
            HashMap<String, Integer> disMap = new LinkedHashMap<String, Integer>();
            for (int j = i; j < i+10; j++) {
                disMap.put(discount[j], disMap.getOrDefault(discount[j], 0) + 1);
            }
            for (String str : wanted) {
                disMap.put(str, disMap.getOrDefault(str,-1) - 1);
            }
            for (String key : disMap.keySet()) {
                if (disMap.get(key) != 0){
                    flag=false;
                    break;
                }
            }
            if(flag) answer++;       
  • 이전에 알고리즘 스터티 시간 때 배운 HashMap이 떠올랐다.

    • 거기다가 순서를 정리해주는 LinckedHashMap을 찾았고, 같은 숫자를 -1 해주는 부분에서 좀 해매긴 했지만 그래도 끝까지 포기하지 않고 풀어서 뿌듯했다.

    개인과제 : Test 추가

    Entity, Dto, Controller를 구현 해 놓고 오늘 Service와 Repository를 구현하려고 했다.

    근데 @RunWith(MockitoJUnitRunner.class)에서 자꾸 오류가 나서 시간을 엄청 썼는데.. 결국 @ExtendWith(MockitoJUnitRunner.class)로 고쳐서 과제를 해결하라고 공지가 올라왔다.

    허허..

    나는 엄청난 시간동안 뻘짓을 하다가 튜터님께 물어보고나서 (왜냐면 발제가 잘못됬을리는 없다고 생각했기에) Extend로 바꿔서 만들었는데..

    그래서 잘못 이해한줄 알고 강의도 다시 보고 진짜 노력을 엄청 했었기에 너무 허무했다.

    테스트 케이스는 1개씩만 만들고 제출하려고 한다.

profile
개발이 하고싶은 개발지망생

0개의 댓글