본문 바로가기

LeetCode/Matrix

(3)
[Medium] 54. Spiral Matrix (Microsoft) #문제 설명 Leetcode 54번 문제는 m x n matrix 가 주어진다. matrix의 값은 1부터 n까지의 정수로 채워진다. 정수의 순서는 matrix에 나션형 모양으로 나열된다. 우리는 이 matrix를 나선형 (matrix[0][0] 에서 시작해서 오른쪽끝, 맨 아래, 맨 왼쪽, 위로를 matrix의 전체가 커버 될때까지 반복한다). 이 과정에서 각 index를 지날때마다, index에 있는 정수 값들을 list에 add해주면 된다, 그리고 그 list를 return해주면 된다. #문제 풀이 이 문제는 총 네가지 (오른쪽, 아래, 왼쪽, 위) traverse하는 경우가있기때문에, 그 index들을 tracking하는 variable를 만들고, 그 varible들 (matrix index)을 ..
[Medium] 1337. The K Weakest Rows in a Matrix #문제 설명 1337번 문제는 정수 k와 n x m matrix가 주어진다. 각 열은 0과 1로 구성 돼있다. 1은 군인을 나타내고 0은 시민을 나타낸다. 각 열에서 1 (군인)보다 먼저 0 (시민)이 나올 순 없다 (열에서 1이 다 나열된 뒤 0이 나열됨). 이 문제에선 주어진 정수 k번째로 "약한" (군인이 적은) 열 들을 담은 array를 return 시켜주면 된다. #문제 풀이 #Heap 사용 풀이 class Solution { public int[] kWeakestRows(int[][] mat, int k) { int m = mat.length; int n = mat[0].length; // Create a Priority Queue that measures firstly on strength ..
[Medium] 48. Rotate Image (Amazon/Microsoft) #문제 설명 Leetcode 48번 문제에서는, n x n 2d array, 즉 matrix가 주어진다. Matrix의 각 index는 정수들로 채워져 있다. 그 주어진 matrix를 위의 예시 저럼 90도 오른쪽으로 뒤 집은 matrix를 return 하는 문제이다. 루빅스 큐브 앞면에 숫자들이 적혀저 있고 그 루빅스 큐브 오른쪽으로 한번 돌린다고 생각하면된다. #문제 풀이 #Transpose후 horizontally swapping풀이 Linear Algebra (선형 대수학)을 배울때 transpose (전치) 라는 것을 배운다. Transpose란 matrix의 행과 렬을 바꾸는 행위이다. 이 문제는 transpose를 사용해 풀 수있다. 먼저 matrix를 transpose 하고 matrix를 ..