2022년 03월 27일 일요일 - 오느른 데이뚜


오늘 올려볼 문제는 1337번 The K Weakest Rows in a Matrix 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

leetcode 문제 사진

오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.

오늘 문제도 쉽구만


입력


사진에서도 볼 수 있듯이 2차원 int 배열과 int 값 하나가 입력으로 들어온다.



풀이 및 코드


각 2차원 배열의 row 중 1의 개수가 적은 row 들부터, index가 더 작은 row 들부터 길이가 k인 배열에 index를 담아 리턴하는 문제다.


오늘은 처음부터 정답을 생각해냈다.

pair 클래스를 만들고 comparator를 구현해서 문제를 풀었다.


이제 코드를 봐보자!


풀이코드

class Solution {
    public int[] kWeakestRows(int[][] mat, int k) {
        pair[] arr = new pair[mat.length];
        int[] result = new int[k];

        for(int i = 0; i < mat.length; i++)
        {
            int sum = 0;
            for(int num : mat[i]) sum += num;
            arr[i] = new pair(sum, i);
        }

        Arrays.sort(arr, (p1, p2) -> {return p1.val == p2.val ? p1.index - p2.index : p1.val - p2.val;});

        for(int i = 0; i < k; i++)
            result[i] = arr[i].index;

        return result;
    }
}

class pair
{
    int val, index;

    public pair(int val, int index)
    {
        this.val = val;
        this.index = index;
    }
}




제출 화면

leetcode 문제 맞았습니다


어제 오늘 문제가 너무 쉬운것 같다.

내일 문제는 좀 어려우면서 재밌는 문제가 나왔으면 좋겠다.


내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.

+ Recent posts