티스토리 뷰
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 | 31 |
글 보관함