728x90
https://leetcode.com/problems/set-matrix-zeroes/submissions/
문제가 영어로 되어 있어서 살짝 쫄았지만 막상 보니 별겨 없드라~
그냥 배열에서 0이 있으면 0이 있는 row, col의 원소들을 모두 0으로 바꿔주면 되는것이었다
리트코드는 처음이라 일단 효율성 생각 안하고 for문으로 돌렸는데 성공한듯..?
아래는 코드이다!
자바 코드)
import java.util.*;
class Solution {
static int[][] matrix;
public void setZeroes(int[][] matrix) {
int m = matrix.length;
int n = matrix[0].length;
List<Pair> list = new LinkedList<>();
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
if(matrix[i][j]==0) {
list.add(new Pair(i, j));
}
}
}
for(int i=0;i<list.size();i++) {
for(int x=0;x<m;x++) {
matrix[x][(int)list.get(i).getValue()] = 0;
}
for(int y=0;y<n;y++) {
matrix[(int)list.get(i).getKey()][y] = 0;
}
}
}
}
반복문 돌려서 0 원소의 row, col을 Pair 로 저장한다
그리고 반복문 돌면서 Pair의 원소를 꺼내고, 행마다 열마다 각각 돌면서 모든 원소를 0으로 바꾼다
끝!
728x90
'코딩테스트' 카테고리의 다른 글
[리트코드] 38. Count and Say - JAVA (0) | 2022.06.07 |
---|---|
[리트코드] 1222번 - JAVA (0) | 2022.05.31 |
[JAVA] 문자열 배열 길이별로 정렬 (0) | 2022.03.30 |
[JAVA] 문자열 자르기 - (indexOf / substring / split) (0) | 2022.03.30 |
코드업 기초 100제 - 1030번 (0) | 2021.07.30 |
댓글