본문 바로가기
레거시

2022.04.21의 기록

by GroovyArea 2022. 4. 21.

▶ 파트 1 (1시 ~ 8시)

1. Gradle Test 코드 수정 (테스트 코드 목적에 맞게)

2. 노션 이력서

3. Boot Project Wiki

4. Spring MVC 내부 개념 정리

▶ 파트 2 (9시 ~ 2시)

1. 알고리즘 1문제 (꽂혀서 4문제 품)

2. Mysql CH4. 아키텍쳐

 

▷ 알고리즘

> 문제점 : 코드실행은 정상적인데 채점에서 실패한다.

 

> 새로 알게 된 사실 : 문제를 풀 때 메모리와 걸리는 시간도 체크하는 것 같다..

 

> 문제 : 배열 중 제일 작은 수 제거하고 없다면 -1을 반환

 

> 내가 처음 푼 방식 : 배열은 인덱스를 지우는 방식이 없으므로 List로 만들어서 내림차순 정렬 후 제거하고 다시 오름차순으로 했다. 완전 절차지향식

 

> sort는 되도록 삼가하는 것이 좋덴다.. 데이터가 많아지면 사용하는 메모리가 늘어나기 때문

 

> sort를 한번하고 최소 수를 remove 하는 방식으로 마무리

 

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;

class Solution {
    public int[] solution(int[] arr) {
        int answer[] = {};
        int min = 0;
        int[] copy = arr.clone();
        List<Integer> solveList = new ArrayList<Integer>();
         
        if(arr.length == 1){
            answer = new int[1];
            answer[0] = -1;
        }
        else{
            answer = new int[arr.length];
            Arrays.sort(copy);
            min = copy[0];
            int a = arr.length;
            
            for(int i = 0; i< arr.length; i++){
                if(arr[i] == min){
                    a--;
                    continue;
                }
                solveList.add(arr[i]);
            }
            
            answer = new int[a];
            
            for(int i=0; i<a; i++){
                answer[i] = solveList.get(i);
            }
        }
     
        return answer;
    }
}

 

▷ 테스트 코드

이런 식으로 메인 코드에 맞춰 작성하는 것이 아니다
테스트를 위한 코드를 작성하자

반응형

'레거시' 카테고리의 다른 글

2022.04.23 의 기록  (0) 2022.04.23
2022.04.22의 기록  (0) 2022.04.22
2022.04.20 의 기록  (0) 2022.04.20
2022.04.19의 기록  (0) 2022.04.19
2022.04.18 오늘의 기록  (0) 2022.04.18