![[백준 17472번] 다리 만들기 2 - 그래프 탐색, 최소 신장 트리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdoOIK%2FbtsIF1JLbSh%2FMtutc2DxPHY3Bz5X3gMI3K%2Fimg.png)
문제 난이도GOLD I (링크) 문제 풀이각각의 독립된 섬들을 최단 거리로 연결하고 싶을 때, 놓을 수 있는 다리의 총 길이의 최소값을 구하는 문제.역시나 최소 신장 트리를 응용한 문제가 되겠다. 이번에는 각 간선을 구하는 것과 더불어, 이 섬이 어느 정점인지를 구하는 것도 필요하다. 결국엔 두 정점 사이의 간선을 구해서 문제를 풀어야하기 때문이다. 위의 그림처럼 문제에서 요한 3가지 올바르지 않은 방법과 함께, 추가로 두 가지만 주의한다면 쉽게 풀 수 있다. 처음 다른 섬을 만났을 때 만족하지 않는 조건이라면 바로 빠져나올 것.부끄럽게도 처음 코드를 완성시켰을 때, 다른 섬을 만났을 때, 종료 조건을 부족하게 작성하여 아래 그림처럼 더이상 탐색하지 못함에도 불구하고 탐색을 시켰다. Union..
![[백준 1865번 Java] 웜홀 - 벨만 포드(Bellman Ford)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoIR3v%2FbtsHYUc7TOB%2FJ9ODYV8AkesGeUWKO23K7K%2Fimg.png)
문제 난이도GOLD III (문제 링크) 풀이 [알고리즘] 벨만-포드(Bellman-Ford) 알고리즘벨만-포드 알고리즘은 그래프의 최단 경로를 구하는 알고리즘의 하나로, 다익스트라로 해결하지 못하는 음의 간선이 포함된 문제를 효과적으로 해결할 수 있는 알고리즘이다. [알고리즘] 다mag1c.tistory.com 포스팅에서 학습했기 때문에 자세한 설명은 생략하고, 풀었던 방법만 나열해보고자 한다. 벨만-포드 알고리즘은 특정 출발점에서 모든 노드로의 최단 경로를 탐색하는 알고리즘이다. 또한 음수 사이클을 검출할 수 있다. 도달할 수 없는 노드를 표시하기 위해 INF에 가까운 값들로 초기화해서 사용할 수 있다. 첫번째 방법문제에서, 특정 노드를 언급하지 않았다. 한 노드에서 출발하여~~~이기 때문에, ..
![[백준 1043번 / Java] 거짓말](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdWVRS%2FbtsoeJvgAAp%2FJ8IzlA4szblgkAdCYbsoEK%2Fimg.png)
문제 링크 Gold 4 https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 첫 풀이 크게 시간, 메모리 고려를 하지 않아도 될 것 같아보여서 뇌를 빼고 풀어보려고 했다. (사실 Union Find에 자신이..) 단순 String배열을 활용하고, List에 String배열을 저장하여 정답을 도출하려고 했고, 문제에서 제공하는 테스트케이스를 만족해서 됐다!!! 라고 생각했다. import java.io.BufferedReader; import java.io.IO..
![[백준 10026번 / Java] 적록색약 - DFS/BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaisEu%2Fbtsn7uqFir0%2FatOyavBkmLVHeVFLUotkQK%2Fimg.png)
문제 링크 Gold 5 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 풀이 필자는 BFS를 이용해 풀었으며 실버 DP문제들 보다 난이도가 쉬운 것 같다. 처음에는, BFS 메서드를 통해 한 번 완전탐색을 끝낸 후 바로 결과를 도출시키려고 했고, 실패했다. 이유는 모든 결과를 고려하지 않아서 인 것 같다. 어떤 경우였냐면 //bfs메서드의 파라미터로 color을 받아 RGBCheck배열 체크 switch(color) { case 'R':..
![[백준 1697번 / Java] 숨바꼭질 - BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbukE0F%2FbtsmF5GO9jT%2FQvjnMwuw9C9EEhgKKhdql0%2Fimg.png)
문제 링크 Silver 1 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 단순 BFS 구현 문제로 너비를 +1, -1, *2의 경우로 두었고 문제 조건에 알맞게 예외상황에 대한 처리를 하면 되는데 N == K일 때의 상황을 고려하지 않아서 20분동안 삽질했다.. 꼼꼼하게 보고 놓치지 말자.. import java.io.BufferedReader; import java.io.IOException; import j..
![[백준 16928번 / Java] 뱀과 사다리 게임 - BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba6Jon%2FbtsmBYfoW0u%2FVHmaraNm7lqVw7rfo8LjLk%2Fimg.png)
난이도 Gold 5 문제 링크 https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 풀이 BFS로 풀이했다. 각 너비는 주사위를 1~6번 까지 나오는 경우를 각 너비로 잡았다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class BaekJoon16928 { private stat..
![[백준 14500 / Java] 테트로미노 - DFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclAwAW%2Fbtsmzc5Ybha%2F5KtV53bE5udSxWqq0tiC20%2Fimg.png)
난이도Gold 4 문제 링크https://www.acmicpc.net/problem/14500 14500번: 테트로미노폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변www.acmicpc.net 풀이DFS로 풀이하였으며 'ㅗ' 모양을 단순 DFS로 구현할 수 없어서 따로 메서드화 했지만 DFS 내부에서 cnt = 3일 때 조건을 주어 처리할 수도 있다. 원하는 방식대로 풀면 된다. 메서드 이름이 마땅히 생각나지않아 fuck로 지었...import java.io.BufferedReader; import java.io.IOException; import java.io...
![[백준 9019번 / Java] DSLR - BFS](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxAiLA%2FbtsmsSe26b2%2FoiL7xTYWhjnBwx4YAdKbuK%2Fimg.png)
문제 링크 https://www.acmicpc.net/problem/9019 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 풀이 엄청난 삽질을 했던 문제 한번에 풀겠거니 했는데 처음에는 메모리 초과가 발생했는데, 이유는 아마 String 배열 하나로 풀었기 때문인 것 같다. 어떻게 boolean 배열 없이 단순 String 배열로만 풀어보자 하고 고집하다가 계속 오답을 발생시켰다. 추가로, l과 r을 계산하는 조건을 구할 때, 처음에 String으로 받아서 charAt로 풀었기 때문에 메모리가 ..