티스토리 뷰
Oops, All Code!/🤯 Oops, My Algorithm!
꒰ྀི 13. LeetCode:: 행과 열의 합이 주어진 유효한 행렬 찾기
밍동망동 2024. 7. 24. 13:34주어진 rowSum과 colSum을 만족하는 행렬을 구성한다.
각 행과 열의 합이 주어진 값을 만족하는 동시에, 음이 아닌 정수여야 한다.
이 문제를 해결하기 위해 탐욕법을 사용했다.
각 셀에 가능한 최댓값을 할당하며 rowSum과 colSum을 줄여나간다.
1. rowSum과 colSum의 크기에 맞는 행렬 초기화
2. 각 셀에 최댓값을 할당하며 줄여나감
3. 모든 rowSum과 colSum이 0이 될 때까지 반복함
function restoreMatrix(rowSum, colSum) {
const numRows = rowSum.length;
const numCols = colSum.length;
const matrix = Array.from({ length: numRows }, () => Array(numCols).fill(0));
let i = 0, j = 0;
while (i < numRows && j < numCols) {
const minValue = Math.min(rowSum[i], colSum[j]);
matrix[i][j] = minValue;
rowSum[i] -= minValue;
colSum[j] -= minValue;
if (rowSum[i] === 0) {
i++;
}
if (colSum[j] === 0) {
j++;
}
}
return matrix;
}
1. 행렬의 크기를 초기화함
2. 두 포인터 i와 j를 이용해 행과 열을 가리키게함
3. 할당된 값을 rowSum[i]와 colSum[j]에서 빼줌
4. rowSum과 colSum이 0이 될 때까지 반복함

'Oops, All Code! > 🤯 Oops, My Algorithm!' 카테고리의 다른 글
( ु ´͈ ᵕ `͈ )ु JS:: 코딩테스트를 위한 완전탐색과 탐욕법 (0) | 2024.07.24 |
---|---|
꒰ྀི 14. 프로그래머스:: 모음 사전 (0) | 2024.07.24 |
꒰ྀི 12. LeetCode:: 가장 긴 공통 접두사 (0) | 2024.07.23 |
꒰ྀི 11. LeetCode:: 괄호 생성 (0) | 2024.07.23 |
( ु ´͈ ᵕ `͈ )ु JS:: 코딩테스트를 위한 배열 / 객체 / 집합(Set) 정리글 (0) | 2024.07.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 대학생플리마켓
- 소사벌맛집
- 카드뉴스
- 어른의어휘공부
- javascript
- 책추천
- 일급객체
- 경험플리마켓
- 네이버부스트캠프
- 부스트캠프멤버십
- 프로토타입
- js
- 웹풀스택
- 안성스타필드
- 소사벌
- 프론트엔드
- 어휘력
- 회고
- react
- 카페추천
- 도서추천
- 프리코스
- 우아한테크코스
- 대학생팝업스토어
- 트러블슈팅
- 도서리뷰
- 비즈플리마켓
- 서평
- typescript
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함