Algorithm
-
https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 1068, 트리 📌 난이도 : Gold 5 📌 알고리즘 : DFS 📌 자료구조 : 트리 이번 문제는 DFS 와 트리 구조를 사용하여 문제풀이를 진행했다. 💻 📚 Process 초기화 및 선언 : 노드의 개수만큼 ArrayList[] adj 를 생성해준다. 이는 부모 노드에 연결된 자식 노드들을 표기하기 위함이다. N개 만큼 ArrayList를 선언해주고 시작 노드와 삭제할 노드를 차례로 입력..
(JAVA) 백준 1068번 : 트리https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 1068, 트리 📌 난이도 : Gold 5 📌 알고리즘 : DFS 📌 자료구조 : 트리 이번 문제는 DFS 와 트리 구조를 사용하여 문제풀이를 진행했다. 💻 📚 Process 초기화 및 선언 : 노드의 개수만큼 ArrayList[] adj 를 생성해준다. 이는 부모 노드에 연결된 자식 노드들을 표기하기 위함이다. N개 만큼 ArrayList를 선언해주고 시작 노드와 삭제할 노드를 차례로 입력..
2023.08.17 -
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 1987, 알파벳 📌 난이도 : Gold 4 📌 알고리즘 : DFS 완전탐색 이번 문제는 DFS로 쉽게 풀었다가 틀려서 1시간 정도 고생했었다. DFS 접근하지만 최대값을 구해야 하기 때문에 완전 탐색으로 모든 구역을 탐색해야 한다는 점을 주의해야 한다. 📚 Process 초기화 및 선언 : 알파벳을 순서대로 char[][] map 에 넣어주는 것으로 시작한다. 알파벳을 사용했는지 확인하기..
(JAVA) [BOJ]백준 1987번, 알파벳https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 1987, 알파벳 📌 난이도 : Gold 4 📌 알고리즘 : DFS 완전탐색 이번 문제는 DFS로 쉽게 풀었다가 틀려서 1시간 정도 고생했었다. DFS 접근하지만 최대값을 구해야 하기 때문에 완전 탐색으로 모든 구역을 탐색해야 한다는 점을 주의해야 한다. 📚 Process 초기화 및 선언 : 알파벳을 순서대로 char[][] map 에 넣어주는 것으로 시작한다. 알파벳을 사용했는지 확인하기..
2023.08.17 -
https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 14938, 서강그라운 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제는 DFS 로 풀이를 시도했다가 처참하게 틀리고 플로이드 와샬로 재풀이를 진행하였다. 📚 Process 초기화 및 선언 : 지역의 개수 N, 수색범위 M, 길이개수 R 을 차례로 입력받고 아이템 개수를 받을 item[] 을 선언해서 차례로 채워준다. 수색 길이를 입력받을 int[][]..
(JAVA) [BOJ]백준 14938번, 서강그라운드https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 14938, 서강그라운 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제는 DFS 로 풀이를 시도했다가 처참하게 틀리고 플로이드 와샬로 재풀이를 진행하였다. 📚 Process 초기화 및 선언 : 지역의 개수 N, 수색범위 M, 길이개수 R 을 차례로 입력받고 아이템 개수를 받을 item[] 을 선언해서 차례로 채워준다. 수색 길이를 입력받을 int[][]..
2023.08.16 -
https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net 1956, 운동 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제도 플로이드 와샬을 통한 최단 거리를 구하는 문제이다. 📚 Process 초기화 및 선언 : 마을의 개수 V, 도로의 개수 E 를 입력받고 E개만큼 단방향 그래프를 생성해준다. 양방향이 아님에 주의해야 한다. 추가로 여기서 연결되는 노드가 없을 때는 I..
(JAVA) [BOJ]백준 1956번, 운동https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net 1956, 운동 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제도 플로이드 와샬을 통한 최단 거리를 구하는 문제이다. 📚 Process 초기화 및 선언 : 마을의 개수 V, 도로의 개수 E 를 입력받고 E개만큼 단방향 그래프를 생성해준다. 양방향이 아님에 주의해야 한다. 추가로 여기서 연결되는 노드가 없을 때는 I..
2023.08.16 -
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 11404, 플로이드 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제는 문제 이름에서부터 알 수 있듯이 플로이드 와샬 문제이다. a -> b 도시에 가는데 비용이 주어지는데 중복이 있을 수 있으므로 최소 값을 저장해야 한다. 📚 Process 초기화 및 선언 : 도시의 개수 N, 버스의 개수 M을 입력받고 M개만큼의 비용이 주어진다. 이것을 단방향..
(JAVA) [BOJ]백준 11404번, 플로이드https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 11404, 플로이드 📌 난이도 : Gold 4 📌 알고리즘 : 플로이드 와샬 (Floyd-Warshall) 이번 문제는 문제 이름에서부터 알 수 있듯이 플로이드 와샬 문제이다. a -> b 도시에 가는데 비용이 주어지는데 중복이 있을 수 있으므로 최소 값을 저장해야 한다. 📚 Process 초기화 및 선언 : 도시의 개수 N, 버스의 개수 M을 입력받고 M개만큼의 비용이 주어진다. 이것을 단방향..
2023.08.16 -
https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 9205, 맥주 마시면서 걸어가기 📌 [ 난이도 : 골드 5 ] 난이도가 올라갈수록 문제를 이해하는데 걸리는 시간이 오래 걸리는 것 같다. 정리하자면 N+2 개 줄에 상근이네 집, 편의점, 펜타포트 락 페스티벌 좌표가 각각 주어지는데 50M 가기 전에 맥주 한병을 마셔야 하고 맥주 한 박스에는 맥주 20개가 들어있기 때문에 좌표간의 거리가 1000M (50M당 맥주 1개, 20개 보유) 면 ..
(JAVA) [BOJ]백준 9205번, 맥주 마시면서 걸어가기https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 9205, 맥주 마시면서 걸어가기 📌 [ 난이도 : 골드 5 ] 난이도가 올라갈수록 문제를 이해하는데 걸리는 시간이 오래 걸리는 것 같다. 정리하자면 N+2 개 줄에 상근이네 집, 편의점, 펜타포트 락 페스티벌 좌표가 각각 주어지는데 50M 가기 전에 맥주 한병을 마셔야 하고 맥주 한 박스에는 맥주 20개가 들어있기 때문에 좌표간의 거리가 1000M (50M당 맥주 1개, 20개 보유) 면 ..
2023.08.16 -
https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 1707, 이분 그래프 📌 [ 난이도 : 골드 4 ] 이번 문제는 그래프 이론과 BFS 를 사용한 풀이이다. 풀이에 들어가기 이전에 이분 그래프에 대한 이해가 어려워 시간이 오래걸렸다. 이분 그래프는 요약해서 말하자며 어떤 한 정점에서 연결된 모든 정점이 다른 값을 가져야 한다는 의미이다. 더 자세한 내용은 풀이에서 이어서 설명하겠다. - 📚 Process 초기화 및 선언 : 테스트 케이스 T와..
(JAVA) [BOJ]백준 1707번, 이분 그래프https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 1707, 이분 그래프 📌 [ 난이도 : 골드 4 ] 이번 문제는 그래프 이론과 BFS 를 사용한 풀이이다. 풀이에 들어가기 이전에 이분 그래프에 대한 이해가 어려워 시간이 오래걸렸다. 이분 그래프는 요약해서 말하자며 어떤 한 정점에서 연결된 모든 정점이 다른 값을 가져야 한다는 의미이다. 더 자세한 내용은 풀이에서 이어서 설명하겠다. - 📚 Process 초기화 및 선언 : 테스트 케이스 T와..
2023.08.15 -
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 14503, 로봇 청소기 📌 [ 난이도 : 골드 5 ] 이번 문제는 DFS 로 풀이를 진행했다. 문제 읽고 이해하는데만 한 세월 걸린 문제 ! 📚 Process 초기화 및 선언 : 청소할 구역에 대한 범위를 입력받고 시작 좌표와 방향을 받는다. 방향이 중요하기 때문에 dir 도 신경써서 선언해주어야 한다. static BufferedReader b..
(JAVA) [BOJ]백준 14503번, 로봇 청소기https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 14503, 로봇 청소기 📌 [ 난이도 : 골드 5 ] 이번 문제는 DFS 로 풀이를 진행했다. 문제 읽고 이해하는데만 한 세월 걸린 문제 ! 📚 Process 초기화 및 선언 : 청소할 구역에 대한 범위를 입력받고 시작 좌표와 방향을 받는다. 방향이 중요하기 때문에 dir 도 신경써서 선언해주어야 한다. static BufferedReader b..
2023.08.15