전체 글

전체 글

    [JAVA] 백준 2667번 - 단지번호붙이기

    문제 2667번: 단지번호붙이기 [ 해결순서 ] 깊이우선탐색, 너비우선탐색 어떤 방식으로도 풀 수 있는 문제지만, 나는 문제를 보자마자 깊이우선탐색로 풀어야 겠다고 떠올라 이 방식으로 해결하였다. 총 단지수는 하나의 깊이우선탐색이 끝날때 변수 값을 하나씩 추가하면 되며, 모든 값들을 하나씩 살펴보며 방문하지 않은 것 중 집이 있는 곳을 깊이우선탐색 한다. dfs 메소드는 사실 다른 유사한 깊이우선탐색의 메소드와 비슷하다. 그래도 설명하자면, 입력한 x, y값을 기준으로 상하좌우의 값을 비교하여 조건에 맞는 (방문하지 않고, 집이있으면) 그 값을 기준으로 재귀처리 함. 총 단지수를 출력하고, 각 단지내의 수를 오름차순으로 정렬하여 출력 (까먹고 오름차순 정렬하지 않았다가 틀렸었다) ✏️ 한줄 평 이젠 어떤..

    [JAVA] 백준 1697번 - 숨바꼭질

    문제 1697번: 숨바꼭질 [ 해결순서 ] 문제의 조건을 파악한 후 이동을 할 때 3가지 경우에 따라 조건문을 작성하면 되겠다고 파악했다. 큐를 이용하여 시작 값을 먼저 큐에 넣고 큐가 비어있을 때까지 반복해서 큐의 값을 꺼내어 3가지 조건을 너비우선탐색을 이용한다. 값이 조건에 벗어나지 않고, 방문을 하지 않았으면 그 값을 큐에 넣어 재귀호출을 통해 그 값을 기준으로 또 너비우선탐색을 한다. 결과의 위치를 찾으면 그 위치가 몇 초후에 찾았는지 visited 배열의 값에 넣어 출력한다. ✏️ 한줄 평 이런 종류의 문제를 너비우선탐색을 이용하여 풀 수 있구나를 제대로 알게 된 문제였다. 코드

    [JAVA] 백준 1149번 - RGB거리

    문제 1149번: RGB거리 [ 해결순서 ] 처음엔 첫 줄의 최소 값을 구하고 다음 줄에는 그 줄의 색깔을 제외한 색깔 중 최소 값을 구하려 했다. 그러면 전체에서의 최소 값을 구하지 못함. 결국 전체 경우의 수를 구해야 함 해당 값을 구하려면 현재의 색깔을 제외한 색깔의 행과, 직전의 열을 값들을 비교해서 작은 값에 + 현재의 비용을 더함. (비용을 더하지 않는 실수를 함) 마지막 줄의 색깔 중 가장 작은 값이 정답 점화식 dp[i][red]=Math.min(dp[i-1][blue],dp[i-1][green])+cost[i][red] //빨간 색 이라면, 그 전줄의 빨간 색이 아닌 파랑, 초록 중 작은 값 + 해당 값의 가격 ✏️한줄평 DP 문제를 더 자주 풀어 익숙하게 해야겠다. 코드