알고리즘 문제 풀이/백준 47

[백준] 2655 - 미로 만들기 문제 풀이(자바,Java)

문제2665번: 미로만들기들어가며우선순위 큐를 생각도 못했다.소모 시간1시간성공 여부X두 가지의 풀이를 제시해보고자 한다.첫 번째는, 우선 순위 큐와 넣는 클래스 안에 코스트를 넣어 만든 방식두 번째는, 코스트를 따로 배열로 관리하여 이전 값과 비교하는 방식이다.첫 번째 풀이 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.PriorityQueue;//3:27public class 미로만들기_2655 { private static char[][] graph; private static int v; private static int[][] dir..

[백준] 1916- 최소비용 구하기 문제 풀이(자바,Java)

문제1916번: 최소비용 구하기들어가며다익스트라를 처음 배울 땐, visited 배열(노드 방문 처리)를 사용하지 않아도 된다고 배웠다.근데 웬걸.. 바로 써야하는 문제를 만났다. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.PriorityQueue;public class 최소비용구하기_1916 { private static ArrayList> graph = new ArrayList(); private static int v, e; public sta..

[백준] 2178- 미로 탐색 문제 풀이(자바,Java)

문제2178번: 미로 탐색들어가며전형적인 bfs 문제라고 할 수 있다.다만, 아직 bfs로 최단 거리 구하는 것이 익숙하지 않아 이 글을 쓰게 되었다.코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.Arrays;import java.util.Deque;//11:30public class 미로_탐색_2178 { private static int[][] graph; private static int n, m; private static int[][] dir = {{0, 1}, {0, -1}, {1,..

[백준] 1707 - 이분 그래프 문제 풀이(자바,Java)

문제1707번: 이분 그래프들어가며걸린 시간2시간성공 여부X 꽤 근접하게 접근했는데 더 예외가 있을 줄은 몰랐다..괜히 정답률 25 퍼센트 문제가 아니다.코드package m03.d29;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.StringTokenizer;public class 이분_그래프_1707 { private static ArrayList> graph; private static int[] color; // 0: 미방문, 1: 첫 번째 색상, 2: 두 번째 색상 public static..

[백준] 5639- 이진 검색 트리 문제 풀이(자바,Java)

문제5639번: 이진 검색 트리들어가며재귀적으로 접근해야겠다고 생각은 했는데너무 어렵게 생각해서 오른쪽 서브 트리 처리에서 막혔었다.하지만, 단순하게 보면 풀 수 있는 길이 있었다. 코드import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class 이진검색트리_5639 { static List numbers = new ArrayList(); public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); while..

[백준] 13334- 철로 문제 풀이(자바,Java)

문제13334번: 철로들어가며이 문제는 선형 탐색으로 풀면 O(N^2)으로 시간 초과가 발생한다.그렇기에 다른 방식을 탐색해야 하는데 우선순위 큐를 사용해서 풀 수 있다.코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.PriorityQueue;public class 철로_13334_3 { public static void main(String[] args) throws IOException { Buff..

[백준] 3190- 뱀 문제 풀이(자바,Java)

문제3190번: 뱀 들어가며뱀의 머리를 저장할 생각을 처음부터 왜 못했을까..코드package m03.d25;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Arrays;import java.util.Queue;public class 뱀_3190 { static int[][] dir = {{0,1},{1,0},{0,-1},{-1,0}}; public static void main(String[] args) throws IOException { ..

[백준] 1655- 가운데를 말해요 문제 풀이(자바,Java)

문제1655번: 가운데를 말해요들어가며대충 우선 순위 큐를 쓰는 건 짐작했으나, 두 개를 써야할 줄은 상상도 못했다. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Collections;import java.util.PriorityQueue;public class 가운데를_말해요_1655_3 { static StringBuilder result = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new B..

[백준] 10000 - 원 영역 문제 풀이(자바,Java)

문제10000번: 원 영역들어가며5시간 넘게 쳐다봤던 것 같다..그럼에도 못 풀었다.아직 플레는 멀었다..화이팅코드package m03.d24;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Stack;public class 원의영역_10000_3 { public static void main(String[] args) throws IOException { BufferedReader br = new Buf..

[백준] 2439 - 탑 문제 풀이(파이썬,Python)

문제2493번: 탑들어가며이 문제는 스택으로 풀 수 있다. 처음 접근은 이전에 풀었던 히스토그램처럼 접근했더니가볍게 출력초과(시간초과)가 반겨주었다. 코드import sysinput = sys.stdin.readlinen = int(input().strip())towers = list(map(int, input().strip().split()))stack = []result = [0] * n # 결과를 저장할 리스트 초기화for i in range(n): # 현재 탑보다 낮은 탑은 스택에서 제거 while stack and towers[stack[-1]] 풀이스택에는 현재까지 처리된 탑들의 인덱스를 저장한다.현재 탑의 높이가 스택에 저장된 마지막 탑의 높이보다 크면, 해당 탑은 신호를 받을 ..