Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JavaScript
- RN 프로젝트
- 자바스크립트 split()
- 자바스크립트 reduce()
- [파이썬 실습] 심화 문제
- 자바스크립트
- reactnativecli
- 개발공부
- 프론트개발
- 부트캠프
- 코드스테이츠
- 간단한 날씨 웹 만들기
- [파이썬 실습] 기초 문제
- 자바스크립트 날씨
- 프론트개발공부
- 엘리스
- 코딩부트캠프
- 프로그래머스
- 개발일기
- leetcode
- 엘리스 ai 트랙
- 자바스크립트 sort()
- HTML
- 삼항연산자
- 날씨 웹 만들기
- 자바스크립트 날씨 웹 만들기
- [AI 5기] 연습 문제집
- 리트코드
- [파이썬 실습] 중급 문제
- 엘리스 AI 트랙 5기
Archives
- Today
- Total
개발조각
[리트코드] 62. Unique Paths 본문
728x90
반응형
문제
https://leetcode.com/problems/unique-paths/
Unique Paths - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
해결 방안
동적 프로그래밍 문제이며 공식과 같은 문제라고 생각합니다.
우선 만약 아래와 같은 상황이 있다고 생각합시다.
이 이미지와 같이
grid[1][100]이라도 finish에 도착할 수 있는 경우의 수는 1번이고
grid[100][1]이라도 finish에 도착할 수 있는 경우의 수는 1번입니다.
이 정보를 토대로 Example 1풀이에 대해 설명해보겠습니다.
Example 1:
Input: m = 3, n = 7
Output: 28
이와 같은 경우면 위에 설명했던 내용을 적용해보면
- grid[0][0] ~ grid[0][7] = 1
- grid[0][0] ~ grid[2][0] = 1
1이 됩니다.
이렇게요.
이제 나머지 빈칸일 경우 경의 위치에 있을 때 finish에 도착할 수 있는 경우의 수를 구해야 되는데요.
구하는 방법은 간단합니다.
구해야 되는 위치가 grid[i][j]이면 g[i-1][j] + g[i][j-1]을 해주면 됩니다.
- grid[i][j] = g[i-1][j] + g[i][j-1]
grid[i][j] = g[i-1][j] + g[i][j-1]이방식을 for문으로 돌리면 아래와 같은 이미지대로 됩니다.
소스코드
var uniquePaths = function(m, n) {
const grid = new Array(m);
for(let i=0; i<m; i++) grid[i] = new Array(n).fill(1);
for(let i=1; i<m; i++){
for(let j=1; j<n; j++) grid[i][j] = grid[i-1][j] + grid[i][j-1];
}
return grid[m-1][n-1]
};
알고리즘 순서도
728x90
반응형
'알고리즘🅰 > 리트코드' 카테고리의 다른 글
[리트코드] 59. Spiral Matrix II (0) | 2022.11.07 |
---|---|
[리트코드] 58. Length of Last Word (0) | 2022.11.05 |
[리트코드] 57. Insert Interval (0) | 2022.11.04 |
[리트코드] 56. Merge Intervals (0) | 2022.11.02 |
[리트코드] 54. Spiral Matrix (0) | 2022.10.29 |
Comments