TIL 22.12.30

쓰옹·2022년 12월 30일
0

개발자를 향해~~TIL✍

목록 보기
53/87

TODAY


  • 알고리즘 문제풀이
    깃허브 링크
  • cs특강 - cache
  • 스프링 심화 팀프로젝트 S.A. 제출


알고리즘


프로그래머스 오늘 문제 푼거 포스팅

배열에서 가장 큰 수 두개를 곱한 값을 리턴값으로 주면 되는 거였다.
근데 정렬은 생각하지 못한 상태에서 알고리즘을 짰다.ㅠㅠ 가장 간단한 거였는데...
내 생각은 이거였다.
배열에서 가장 큰 거를 구하고 그 수를 뺀 나머지 수의 배열을 다시 만들어서 거기서 또 가장 큰 거를 구해서 그 두 개를 곱하려고 했다.

public static int[] removeElement(int[] arr, int item) {
     return Arrays.stream(arr)
              .filter(i -> i != item)
              .toArray();
}

class Solution {   
    public int solution(int[] numbers) {
        int max = 0;
        for (int num : numbers) {
            max = num > max ? num : max;
        }
        
        int[] numbersWithoutMax = removeElement(numbers, max);
        
        int secondMax = 0;
        for (int num : numbersWithoutMax) {
            secondMax = num > secondMax ? num : secondMax;
        }
        return max * secondMax;
    }
 }

이렇게 하니까 배열에 동일한 숫자가 있을 경우, 그리고 그 숫자가 가장 큰 숫자에 포함되는 경우엔 numbersWithoutMax에 큰 숫자의 요소 자체를 제외시키기 때문에 원하는 결과값을 얻지 못한다. 그래서 80의 정답률을 얻었다.
그런데 제외를 할 때 인덱스 자체로 하게 되면 될 것 같다!!!

다시 해봐야겠다.

자바 코드를 못 짜겠다.. 어려워
이건 테스트 코드도 하나 통과 못함

public static int[] removeElement(int[] arr, int idx) {
        if (arr == null || idx < 0 || idx>= arr.length) {
            return arr; 
        }
        return IntStream.range(0, arr.length).filter(i -> i != idx).map(i -> arr[i]).toArray();
}


팀 프로젝트 시작!


오늘 한 일

  • 클래스 다이어그램, 테이블 erd 구성

  • 깃 프로젝트 생성

    • 깃 커밋 시 커밋메세지 통일하기 정함
  • 개발환경 통일

    • spring 3.0
    • jdk 17
  • api 설계

  • 역할분담

    • 기능별로 함
    • 숙련과제까지는 모두 했으니까 역할 나눌 때 각자 진도에 따라 심화과제와 추가기능으로 역할분담함
  • 우리팀 규칙 세우기

  • S.A. 제출



마무리


숙련과제까지 해놔서 심화의 과제를 수행하면 된다.
내 역할은 좋아요 기능을 구현해야한다.
하핳 할 수 있지

profile
기록하자기록해!

0개의 댓글