티스토리 뷰

알고리즘/코테

[programmers] 등굣길

kiwiiiv 2022. 1. 3. 18:27

https://programmers.co.kr/learn/courses/30/lessons/42898

 

코딩테스트 연습 - 등굣길

계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =

programmers.co.kr

 

 

수학 문제로 자주 나오던 경로의 수 문제 ..?? 랑 똑같다고 생각해서 고거대로 풀음(예외 제외)

 

 

 

 

조금 신경써서 고려했던 점

- puddles=0 인 경우

- 나머지 개수를 return해야 함

- puddle 위치에 따라 갈 수 없는 위치가 추가적으로 생김 (*)

 

 

+

이동방향이 오른쪽, 아래 두 가지이며

목적지가 오른쪽 하단에 존재하기 때문에 단순한 dfs 적용으로도 해결 가능 

 

 

import java.util.Arrays;

class Solution {
    public static int solution(int m, int n, int[][] puddles) {
        int answer = 0;

        int[][] streets = new int[n+1][m+1];
        for (int i = 0; i < streets.length; i++) {
            Arrays.fill(streets[i], -1);
        }

        //puddles
        int a, b;
        for (int i = 0; i < puddles.length; i++) {
            if (puddles[i].length == 2) {	//puddle 개수 체크
                a = puddles[i][0];
                b = puddles[i][1];
                streets[b][a] = 0;
            }
        }

        for (int row = 1; row <= n; row++) {
            for (int col = 1; col <= m; col++) {
                if (streets[row][col] == 0) continue;
                if (col == 1 && row == 1) {
                    streets[row][col] = 1;
                    continue;
                }

                if (col == 1 || row == 1) {
                //(*)
                    if (row == 1) {
                        streets[row][col] = streets[row][col - 1];
                    } else if (col == 1) {
                        streets[row][col] = streets[row - 1][col];
                    }
                } else {
                    streets[row][col] = (streets[row][col - 1] + streets[row - 1][col]) % 1000000007;
                }
            }
        }
        answer = streets[n][m];
        return answer;
    }
}

'알고리즘 > 코테' 카테고리의 다른 글

[백준 1987] 알파벳  (0) 2022.01.12
[백준 1405] 미친 로봇  (0) 2022.01.07
[programmers] 정수 삼각형  (0) 2022.01.02
[백준 1700] 멀티탭 스케쥴링  (0) 2021.12.19
[programmers] 단속카메라  (0) 2021.12.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함