코딩테스트/프로그래머스

[Java] 프로그래머스 - 등굣길 (3단계)

배똥회장 2022. 7. 27. 15:00
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

import java.util.*;
class Solution {
    public int solution(int m, int n, int[][] puddles) {
    	//계산할 2차원 배열
        int[][] map = new int[m+1][n+1];
        //물에 잠긴 지역 체크용 2차원 배열
        boolean[][] check = new boolean[m+1][n+1];
        
       	//puddles를 통해 check 배열에 표시
        for (int i = 0; i < puddles.length; i++) {
            int x = puddles[i][0];
            int y = puddles[i][1];
            check[x][y] = true;
        }
        
        //집에서부터 한 칸씩 계산하기
        for (int i = 1; i <= m; i++) {
            for (int j = 1; j <= n; j++) {
                if (check[i][j]) continue;
                
                if (i == 1 && j == 1) {
                    map[i][j] = 1;
                } else {
                    map[i][j] = (map[i-1][j] + map[i][j-1]) % 1000000007;
                }
            }
        }
        
        return map[m][n] % 1000000007;
    }
}

 

정확성 테스트
테스트 1 통과 (0.04ms, 73.6MB)
테스트 2 통과 (0.03ms, 77.3MB)
테스트 3 통과 (0.03ms, 73.7MB)
테스트 4 통과 (0.03ms, 77.9MB)
테스트 5 통과 (0.04ms, 72.9MB)
테스트 6 통과 (0.03ms, 74.1MB)
테스트 7 통과 (0.05ms, 72.6MB)
테스트 8 통과 (0.04ms, 76.8MB)
테스트 9 통과 (0.04ms, 77.8MB)
테스트 10 통과 (0.03ms, 72.7MB)
효율성 테스트
테스트 1 통과 (0.61ms, 52.1MB)
테스트 2 통과 (0.18ms, 53.1MB)
테스트 3 통과 (0.37ms, 51.8MB)
테스트 4 통과 (0.49ms, 52MB)
테스트 5 통과 (0.43ms, 52.1MB)
테스트 6 통과 (0.70ms, 52.7MB)
테스트 7 통과 (0.38ms, 51.7MB)
테스트 8 통과 (0.51ms, 52.3MB)
테스트 9 통과 (0.56ms, 52.1MB)
테스트 10 통과 (0.46ms, 52.4MB)

 

 

 

 

 

 

위의 for문이 이해가 안 되면 그림을 보면 이해가 될 겁니다!

 

 

 

 

 

728x90