본문 바로가기

백준127

[Java] BOJ 1707번 이분 그래프 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 www.acmicpc.net 풀이 DFS와 BFS를 사용해서 해결했습니다. 자세한 건 코드의 주석을 참고해주세요. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; impor.. 2021. 7. 25.
[Java] BOJ 11404번 플로이드 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 풀이 플로이드-워샬 알고리즘을 사용해서 해결했습니다. 자세한건 코드의 주석을 참고해주세요 코드 import java.io.InputStreamReader; import java.util.StringTokenizer; import java.io.BufferedReader; import java.io.IOException; public class Main { public static final int INF = 987654321; public static int n,.. 2021. 7. 24.
[Java] BOJ 1520번 내리막 길 1520번: 내리막 길 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으 www.acmicpc.net 풀이 Memoization을 적용한 DFS를 사용하여 해결했습니다. 주의할 점은 이미 방문한 지점을 파악해야 하는데 문제의 조건에 128MB라는 메모리 용량은 visited 배열을 만들면 메모리 부족이 발생할 수 있어서 대신 memo 배열을 -1로 초기화하여 -1보다 클 때, 즉 0 이상일 때 방문했음을 알게 하여 결과도 정확하게 나올 수 있게 하였습니다. 코드 import java.io.BufferedReader; import java.io.IOException; .. 2021. 7. 23.
[Java] BOJ 1717번 집합의 표현 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 풀이 분리 집합(Disjoint Set)을 사용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int n, m; public static int[] parent.. 2021. 7. 21.
[Java] BOJ 2580번 스도쿠 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 풀이 재귀함수를 사용하여 해결했습니다. 이때, 스도쿠가 성립하는 경우가 여러개이므로 맨 처음 완성된 스도쿠만 출력하고 바로 종료하게하였습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int[][] board; p.. 2021. 7. 20.
[Java] BOJ 1987번 알파벳 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 풀이 DFS를 사용하여 해결했습니다. 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static int R, C, answer; public static boolean[] visited; public static char[].. 2021. 7. 19.