24.06.18 화 TIL(Today I Learned) +

신민금·2024년 6월 18일
0
post-thumbnail

TIL(Today I Learned)

: 매일 저녁, 하루를 마무리하며 작성 !
: ⭕ 지식 위주, 학습한 것을 노트 정리한다고 생각하고 작성하면서 머리 속 흩어져있는 지식들을 정리 !


알고리즘 코드카타

  • 문제 설명
    주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
  • 제한사항
    nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
    nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        
        for(int i=0; i<nums.length-2; i++) {
            for(int j=i+1; j < nums.length-1; j++) {
                for(int k=j+1; k < nums.length; k++) {
                    int sum = nums[i] + nums[j] + nums[k];
                    
                    boolean isPrime = true;
                    for (int l=2; l*l <= sum; l++) {
                        if (sum % l == 0) {
                            isPrime = false;
                            break;
                        }
                    }
                    
                    if(isPrime)
                        answer++;
                }
            }
        }

        return answer;
    }
}

  • 과제 제출하실때는 메인브랜치로 머지한 후에 제출해주시면 좋을 것 같습니다!
  • 로깅 aop 를 잘 구현해주셨습니다.
  • 컨트롤러 단위테스트를 작성을 해주셨는데요. 컨트롤러를 테스트할 때에는 내가 원하는 http메서드와 url로 호출했을때 올바른 컨트롤러를 타는지, 그 응답 http code 는 적절한지 등을 테스트해보시면 좋을 것 같습니다.
    (요청뿐만아니라 그 응답에 대한 부분도 체크가 필요할 것 같습니다.)
  • dto 테스트의 경우 내부에 있는 메서드나 Bean Validation 이 잘 동작하는지를 테스트해보시는 것이 필요합니다.
  • 서비스 단위테스트의 경우에도 일관된 패턴으로 테스트코드를 작성할 수 있으니 추가적으로 공부해보시면 좋을 것 같습니다.
    (서비스의 경우 @InjectMock@Mock 어노테이션을 이용해 단위이테스트를 진행할 수 있습니다.)
profile
야옹

0개의 댓글