하루에 한 문제
[프로그래머스] 등굣길 -Java 본문
https://programmers.co.kr/learn/courses/30/lessons/42898
class Solution {
public int solution(int m, int n, int[][] puddles) {
int answer=0;
int map[][]=new int[n][m];
for(int i=0; i<puddles.length; i++) {
map[puddles[i][1]-1][puddles[i][0]-1]=-1;
}
for(int j=1; j<m; j++) {
if(map[0][j-1]==-1) map[0][j]=-1;
}
for(int i=1; i<n; i++) {
if(map[i-1][0]==-1) map[i][0]=-1;
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(map[i][j]==-1) continue;
else if(j==0 || i==0) map[i][j]=1;
else if(map[i][j-1]==-1 || map[i-1][j]==-1)
map[i][j]=(map[i][j-1]+map[i-1][j]+1)%1000000007;
else
map[i][j]=(map[i][j-1]+map[i-1][j])%1000000007;
}
}
answer= map[n-1][m-1];
return answer==-1? 0:answer;
}
}
소요시간 : 40분
실수가 많았던 문제입니다..ㅜㅜ...
일단 문제 푸는 방식은 고등학교때 많이 구했던 방식으로
격자에 숫자를 써가면서 구하는 방식으로 풀었습니다!
이렇게 풀면 되는데 중간에 실수를 많이 했습니다.
실수 1.puddles배열이 행과 열이 반대로 들어오는데 그거를 모르고 행, 열 그대로 받아서 런타임 에러가 났습니다..ㅎㅎ
실수 2.만약 (0,1), (1,0)이 둘다 -1 이라면 경우의 수가 없습니다. 그래서 결국 마지막에 -1을 뽑는데 답은 0을 뽑아야 합 니다.
실수 3. 만약 (0,1)이 물웅덩이라면 (0,2) (0,3),,,,,(0,m)까지는 다 물웅덩이로 해야되는데 (0,1)만 물웅덩이로 표시하고 나 머지 부분은 그냥 1로 표현했습니다.
실수가 많았던 문제입니다..ㅜㅜ
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 멀리 뛰기 -Java (1) | 2020.12.29 |
---|---|
[프로그래머스] 야근지수 -Java (0) | 2020.12.29 |
[프로그래머스] 정수 삼각형 -Java (1) | 2020.12.28 |
[프로그래머스] 2 x n 타일링 -Java (0) | 2020.12.28 |
[프로그래머스] 순위 -Java (0) | 2020.12.25 |
Comments