[Baekjoon] 1325 - 효율적인 해킹
📝 문제 🔑 풀이 과정 · 처음에는 예제 1이 출력이 어떻게 1, 2 나오는지 조차 이해를 못했다. 그러나 항상 그렇듯이 문제에 답이 있다. "A가 B를 신뢰하는 경우에는 B를 해킹하면, A도 해킹할 수 있다는 소리다." 즉, A가 B를 신뢰하는 경우에는 B에서 A로 향하는 단방향 그래프가 생성된다는 의미이다. · 예제 1을 그림으로 표현하면 다음과 같다. 1을 해킹하면 3, 4, 5 도 다같이 해킹, 2를 해킹하면 3, 4, 5도 다같이 해킹, 3을 해킹하면 4, 5 해킹 4와 5는 해킹할때 같이 해킹되는 컴퓨터 없음. 즉 예제1의 출력이 1, 2가 되는 것이다. · N이 10,000으로 작은 편이므로 각 노드마다 BFS를 실행해준다. 물론 할때마다 방문배열 초기화는 필수다. 그리고 각 컴퓨터 해킹 시..
2023. 8. 15.
[Baekjoon] 4963 - 섬의 개수
📝 문제 🔑 풀이 과정 지금까지 많이 풀었던 연결 요소의 갯수를 구하는 문제이다. 다만 지금까지는 상하좌우 총 4가지 방향을 탐색했다면, 이번에는 대각선 4방향까지 더해서 총 8가지 방향을 탐색해야 한다. 나는 BFS(너비 우선 탐색)로 풀었고, 풀이는 생략 🔓 답안 import java.io.*; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int[] dx = {-1, -1, -1, 0, 0, 1, 1, 1}; static int[] dy = {-1, 0, 1, -1, 1, -1, 0, 1}; static int[][] arr; static bo..
2023. 7. 12.