99클럽 코테 스터디 29일차 TIL Delete Greatest Value in Each Row

방지환·2024년 6월 26일

코테 스터디

목록 보기
36/37

Delete Greatest Value in Each Row

  • 문제 풀이

    1. 주어진 각 행에 대해 큰값부터 제거할때 행이 2개일땐 그 값중 큰값을 제거하며 그외에는 그냥 큰값을 그 값을 answer에 더해주는 문제이다.
  • 풀이 소스

class Solution {
    public int deleteGreatestValue(int[][] grid) {
        for(int[]arr : grid){
            Arrays.sort(arr);
        }
        int sum= 0;
        for(int i=grid[0].length-1; i>= 0; i--){
            int max = 0;
            for(int[]arr : grid){
                max = max > arr[i] ? max : arr[i];
            }
            sum+=max;
        
        }
        return sum;
    }
}
  • 오늘의 회고

    • 문제 시도 및 해결
      • 단순히 for문을 통해 주어진 2차원 배열을 우선 정렬 후 각 행에 대한 큰값을 가져오도록 한다.
      • for문을 통해 오름차순한 배열에 대해 grid[0].length부터해서 --하여 큰값을 비교한다.
      • 이때 2차원 배열안에 길이에 따라 유동적으로 변해야함으로 2중 for문을 사용했다.
      • 그 후 2차원 배열에 있는 2행에 대한 max값을 구한 후 sum에 더해줬다.
    • 학습 내용 및 회고
      • 2차원 배열이 무조건 2개라는 생각으로 처음에 Math.max를 통해 문제를 해결할려고 했으나 Array Index Out of Bounds Exception 에러를 발생한것을 보고 조건을 확인했었다.
      • 그리하여 1개일때도 있다는 조건을 확인하게 되어 if문으로 조건을 나눌려고 햇었는데 단순 for문을 통해 쉽게 해결할 수 있다는것을 알게되어 향상된 for문을 참고하게 되었다.
    • 다음 배울것
      • 스프링공부

0개의 댓글