본문 바로가기
레거시

2022.04.22의 기록

by GroovyArea 2022. 4. 22.

▶ 파트 1 (10시 ~ 7시)

1. Gradle Test 코드 수정 (PrintGameResult, ComputerNumber 부분)

2. 자소서 수정

3. Boot project 구상

4. Spring MVC 내부 개념 정리

5. 알고리즘 1문제 (2문제)

6. mysql Ch5. 트랜잭션, CH6. 데이터 압축

7. 이펙티브 자바 아이템 1 정리

 

 

▷ 알고리즘

문제 : 정수의 내림차순 정렬

 

import java.util.Arrays;

class Solution {
    public long solution(long n) {
        long answer = 0;
        
        String number = String.valueOf(n);
        String stringNum = "";
        
        char[] numArr = new char[number.length()];
        
        for(int a = 0; a< number.length(); a++){
            numArr[a] += number.charAt(a);
        }
        
        Arrays.sort(numArr);
        
        for(int i = numArr.length - 1; i >= 0; i--){
            stringNum += numArr[i];
        }
        
        answer = Long.parseLong(stringNum);
        return answer;
    }
}

> 해결법 : 

1. String 값으로 받은 후 길이만큼 char 배열을 선언

2. for 문을 통해 각 인데스 값을 배열에 넣은 후 Arrays 클래스의 sort()를 통해 오름차순 정렬

3. 내림차순으로 정렬이 필요하기 때문에 감소하는 for문을 통해 내림차순으로 String 리터럴 값을 넣음

4. parseLong() 을 통해 Long으로 타입 변환

 

▷ 테스트 코드

1. @MethodSource => static으로 선언된 메서드의 리턴 값을 가져와 사용 가능

2. @ParameterizedTest => 받아온 파라미터들을 이용하여 테스트 메서드의 파라미터로 사용 가능

 

문제1 : 반복되는 메인 코드에 맞춘 테스트 코드 형식

메인 코드에 맞춘 테스트 코드

해결1 : 스트림과 @MethodSource를 사용하여 해결

클라이언트 입장에서 테스트 기대 값과 결과 값을 비교

문제2 : 역시 보수 시 변경 부분에 신경 쓰지 않은 코드 임의로 정해 놓은 테스트 코드이다

메인 코드에 맞춘 코드

해결2: 자동 숫자를 여러 개 생성 뒤 배열 List 비교

테스트 다운 코드로 작성

반응형

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

2022.04.24의 기록  (0) 2022.04.24
2022.04.23 의 기록  (0) 2022.04.23
2022.04.21의 기록  (0) 2022.04.21
2022.04.20 의 기록  (0) 2022.04.20
2022.04.19의 기록  (0) 2022.04.19