골드4 [백준 9694] 무엇을 아느냐가 아니라 누구를 아느냐가 문제다 파이썬알고리즘골드4백준코딩테스트골드4 [백준] 1504번: 특정한 최단 경로 문제 풀이 파이썬 문제 링크 풀이 방식 각 노드간의 거리를 양방향 그래프로 저장한다. v1와 v2를 포함하는 1부터 N까지의 경로 두가지를 구한다. 1 > v1 > v2 > N 1 > v2 > v1 > N 이 때, 다익스트라를 이용하여 구하며, 최소 거리를 구하기 위해 힙큐를 활용한다. 두가지 루트의 거리 중 최소값을 구한다. 이 때, 최소 거리가 비정상적으로 크다면 v1 혹은 v2가 없는 것으로 간주한다. ... beakjoon그래프다익스트라골드4백준beakjoon [백준] 2096번: 내려가기 문제 풀이 파이썬 문제 링크 풀이 방식 해당 문제는 DP 문제로 점화식은 다음과 같다. maxDP1[i] = arr[i][0] + max(maxDP1[i-1], maxDP2[i-1]) maxDP2[i] = arr[i][1] + max(maxDP1[i-1], maxDP2[i-1], maxDP3[i-1]) maxDP3[i] = arr[i][2] + max(maxDP2[i-1], maxDP3[i-1]) minDP도... beakjoon백준DP골드4DP [백준 7044] Bad Cowtractors 파이썬알고리즘골드4백준코딩테스트골드4 [백준 16202] MST 게임 백준코딩테스트골드4파이썬알고리즘골드4 [백준] 5052번 전화번호 목록 JAVA 풀이 트라이를 사용하여 문제를 해결하였다. 트라이 노드는 해시맵으로 구성해서 특정 문자(키)가 입력되면 해당하는 자식 노드로 이어지도록 구성하였으며, 해당 노드에는 boolean 변수를 선언하여 마지막인지 아닌지 체크하도록 하였다. 트라이 자료구조는 root 노드는 비어있으며, 간선에 문자나 숫자가 입력되고 다음 자식노드가 마지막이라면 false, 아니라면 true가 들어있는 식이다 엉망으로 그리... 백준골드4알고리즘골드4 [백준] 5549번 행성 탐사 JAVA 풀이 문제를 읽고나서 시간 복잡도를 보고 누적합 알고리즘을 사용하면 되겠다는 아이디어는 바로 떠올랐다. 하지만 처음에는 jungle, ocean, ice 2차원 배열을 각각 선언하고 3개의 배열을 각각 누적합해줘서 시간 초과가 났다. 해결책은 3개의 2차원 배열을 3차원 배열으로 만들면 된다. 3중 for문이 존재하므로 시간 복잡도가 오래 걸리지 않을까 생각이 들 수도 있지만, O(m*n*3) =... 알고리즘백준골드4골드4 [백준] 1707번 이분 그래프 JAVA 풀이 input으로 주어지는 노드들 사이에 빈칸이 주어져서 StringTokenizer를 사용하였다. 다만 BufferedReader를 사용해 readLine()을 쓸만큼 각 문장이 길지는 않아서 효율적인가에 대해서는 한번 생각해봐야 할 것 같다. 다만 Scanner 보다는 무조건 빠를 것이라고 생각한다. Scanner.nextInt()를 쓰면 nextInt() 메소드에서 오버로딩된 nextInt... 알고리즘백준골드4골드4 [백준 1261] 알고스팟 알고리즘백준코딩테스트골드4파이썬골드4
[백준 9694] 무엇을 아느냐가 아니라 누구를 아느냐가 문제다 파이썬알고리즘골드4백준코딩테스트골드4 [백준] 1504번: 특정한 최단 경로 문제 풀이 파이썬 문제 링크 풀이 방식 각 노드간의 거리를 양방향 그래프로 저장한다. v1와 v2를 포함하는 1부터 N까지의 경로 두가지를 구한다. 1 > v1 > v2 > N 1 > v2 > v1 > N 이 때, 다익스트라를 이용하여 구하며, 최소 거리를 구하기 위해 힙큐를 활용한다. 두가지 루트의 거리 중 최소값을 구한다. 이 때, 최소 거리가 비정상적으로 크다면 v1 혹은 v2가 없는 것으로 간주한다. ... beakjoon그래프다익스트라골드4백준beakjoon [백준] 2096번: 내려가기 문제 풀이 파이썬 문제 링크 풀이 방식 해당 문제는 DP 문제로 점화식은 다음과 같다. maxDP1[i] = arr[i][0] + max(maxDP1[i-1], maxDP2[i-1]) maxDP2[i] = arr[i][1] + max(maxDP1[i-1], maxDP2[i-1], maxDP3[i-1]) maxDP3[i] = arr[i][2] + max(maxDP2[i-1], maxDP3[i-1]) minDP도... beakjoon백준DP골드4DP [백준 7044] Bad Cowtractors 파이썬알고리즘골드4백준코딩테스트골드4 [백준 16202] MST 게임 백준코딩테스트골드4파이썬알고리즘골드4 [백준] 5052번 전화번호 목록 JAVA 풀이 트라이를 사용하여 문제를 해결하였다. 트라이 노드는 해시맵으로 구성해서 특정 문자(키)가 입력되면 해당하는 자식 노드로 이어지도록 구성하였으며, 해당 노드에는 boolean 변수를 선언하여 마지막인지 아닌지 체크하도록 하였다. 트라이 자료구조는 root 노드는 비어있으며, 간선에 문자나 숫자가 입력되고 다음 자식노드가 마지막이라면 false, 아니라면 true가 들어있는 식이다 엉망으로 그리... 백준골드4알고리즘골드4 [백준] 5549번 행성 탐사 JAVA 풀이 문제를 읽고나서 시간 복잡도를 보고 누적합 알고리즘을 사용하면 되겠다는 아이디어는 바로 떠올랐다. 하지만 처음에는 jungle, ocean, ice 2차원 배열을 각각 선언하고 3개의 배열을 각각 누적합해줘서 시간 초과가 났다. 해결책은 3개의 2차원 배열을 3차원 배열으로 만들면 된다. 3중 for문이 존재하므로 시간 복잡도가 오래 걸리지 않을까 생각이 들 수도 있지만, O(m*n*3) =... 알고리즘백준골드4골드4 [백준] 1707번 이분 그래프 JAVA 풀이 input으로 주어지는 노드들 사이에 빈칸이 주어져서 StringTokenizer를 사용하였다. 다만 BufferedReader를 사용해 readLine()을 쓸만큼 각 문장이 길지는 않아서 효율적인가에 대해서는 한번 생각해봐야 할 것 같다. 다만 Scanner 보다는 무조건 빠를 것이라고 생각한다. Scanner.nextInt()를 쓰면 nextInt() 메소드에서 오버로딩된 nextInt... 알고리즘백준골드4골드4 [백준 1261] 알고스팟 알고리즘백준코딩테스트골드4파이썬골드4