[TIL] 백준 4963 - 섬의 개수 ( python )
·
TIL
📌 문제 탐색하기w : 지도의 너비h : 지도의 높이한 정사각형과 가로, 세로, 또는 대각선으로 연결되어 있는 사각형은 하나의 섬이고 섬의 개수를 구하는 것이 핵심입니다.w, h는 50보다 작거나 같은 양의 정수입니다.가능한 시간복잡도지도의 전체 크기는 최대 50 * 50 = 2,500 정사각형입니다.한 번 방문한 정사각형마다 8방향(가로, 세로, 대각선)의 인접 칸을 확인합니다.따라서 최악의 경우 2,500 * 8 = 20,000번 정도의 연산이 수행됩니다.하나의 탐색 당 최대 O(8 * w * h)안에 탐색을 해야 시간안에 탐색을 완료할 수 있습니다.알고리즘 선택지도의 크기가 크지 않아 재귀 깊이나 오버헤드에 대한 부담이 적으므로, 보다 직관적인 깊이 우선 탐색(DFS) 알고리즘을 활용하여 문제를 ..
[TIL] 백준 1326 - 폴짝폴짝 ( python )
·
TIL
📌 문제 탐색하기N : 징검다리의 개수arr : 각 징검다리에 쓰여 있는 N개의 정수a, b : a, b번 징검다리 ( N보다 작거나 같은 정수 )개구리가 징검다리에 쓰여 있는 수의 배수만큼 떨어져 있는 곳으로만 갈 수 있으며, a번째 징검다리에서 시작하여 최소 몇 번 점프를 하여 b번째 징검다리까지 갈 수 있는지를 구하는 것이 핵심입니다.N은 최대 10,000입니다.가능한 시간복잡도최악의 경우, 모든 돌에 1이 적혀 있다고 가정하면, 각 돌에서 최대 O(N)개의 후보를 확인해야 합니다.O(N) * O(N) 이라면?10,000² = 100,000,000번의 연산이 발생1초에 약 100,000,000번의 연산을 수행할 수 있으므로 시간안에 탐색을 완료할 수 있습니다.알고리즘 선택시작 노드를 기준으로 거리..