목록개발 (76)
원하는 것은 뭐든지
문제예제 입/출력5 6*.*.....||....@*|*.*.*....*##.4 57 9...#...#..*.*..*.....*..#.....**.*...*..*.@...#...**....#.#..*.10 8풀이입력으로 지도가 주어지는데 지도에는 @: 진원지.: 일반 도로*: 내진 설계가 되어있지 않은 건물#: 내진 설계가 되어있는 건물|: 방파제의 것들이 들어있다.진원지는 상하좌우 각 방향으로 2의 충격을 줄 수 있고 그로 인해 무너진 건물들은 여진을 발생시키며 각 방향으로 1의 충격을 준다.내진 설계가 이루어진 건물 같은 경우 두 번의 충격이 닿아야 무너지지만 내진 설계가 되어있지 않다면 바로 무너진다.지진 방파제를 만나면 즉시 멈춘다.제출 1 - 정답import java.io.BufferedReade..
문제풀이너무너무 어렵다..처음에 무조건 0에 방문하는데 그게 첫 번째 방문이다.만약 방문이 홀수일 때 다음 날 nextVisit[i]를 방문한다.짝수 일 때 다음 날 i+1을 방문한다.여기까지가 내가 생각한 부분이고 규칙을 찾으려고 하다가 실패해서 결국 다른 사람들의 풀이를 봤다..근데 이해가 잘 안된다... 다른 사람의 풀이 참고class Solution { public int firstDayBeenInAllRooms(int[] nextVisit) { long mod = 1_000_000_007l; int[] dp = new int[nextVisit.length]; for(int i=1;i 다음으로 가는 경우에는 i-1에서 바로 넘어오거나 홀 수..
문제풀이어제의 문제의 업그레이드 형이다.그리드가 주어지는데 그리드 어디에든 장애물이 있을 수 있다.장애물에는 들리지 않고 도착점인 m-1, n-1까지 가는 최소 경로의 개수를 구하면 된다. 제출 1 - 정답class Solution { public int uniquePathsWithObstacles(int[][] obstacleGrid) { int m = obstacleGrid.length; int n = obstacleGrid[0].length; //시작점, 도착점이 장애물이면 불가능 if(obstacleGrid[m-1][n-1] == 1 || obstacleGrid[0][0] == 1) return 0; //0을 포함하고 있으면 ..
문제풀이m과 n이 입력으로 주어지면 오른쪽과 아래쪽으로만 움직일 수 있는 로봇이 0,0에서 출발하여 m-1, n-1에 닿는 최소의 경우가 몇인지 출력하면 되는 문제.제출 1 - 정답class Solution { public int uniquePaths(int m, int n) { int[][] grid = new int[m][n]; //그리드 생성 for(int i=0;i 아주 간단한 문제이다. 일단 0에서 출발하여 x나 y에 0이 포함된 곳으로 최단거리로 갈 수 있는 경우는 한 가지밖에 없다.그리고 그 사이의 값 예를들어 1,1의 위치까지 갈 수 있는 방법은 0,1과 1,0까지 갈 수 있는 방법을 더한 것과 같다.왜냐하면 그 위치들에서 한칸만 움직이면 되기 때문이다..