문제) 백준 - BFS - 샘터
https://www.acmicpc.net/problem/18513
18513번: 샘터
첫째 줄에 자연수 N과 K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N, K ≤ 100,000) 둘째 줄에 N개의 샘터의 위치가 공백을 기준으로 구분되어 정수 형태로 주어진다. (-100,000,000 ≤ 샘터의 위치 ≤
www.acmicpc.net
BFS를 통해서 각 샘터를 기준으로 지을 수 있는 집의 최소 불행도를 구한다. 주언진 샘터의 좌표를 Queue에 push 하여 매번 Queue size마다 K개 집에 대하여 거리를 더해준다.
C++ 소스 코드)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
while (!q.empty()) { | |
if (tt == K) break; | |
int q_size = q.size(); | |
dis++; | |
for (int j = 0; j < q_size; ++j) { | |
int now = q.front(); q.pop(); | |
if (0 <= now - 1 && !dist[now - 1]) { | |
dist[now - 1] = true; | |
tt++; | |
ans += dis; | |
if (tt == K) break; | |
q.push(now - 1); | |
} | |
if (now + 1 < MAX && !dist[now + 1]) { | |
dist[now + 1] = true; | |
tt++; | |
ans += dis; | |
if (tt == K) break; | |
q.push(now + 1); | |
} | |
} | |
} |
Full Code)
GitHub - Chocochip101/BOJ_Solution: BOJ Solutions
BOJ Solutions. Contribute to Chocochip101/BOJ_Solution development by creating an account on GitHub.
github.com
반응형
'PS(Problem Solving) > 백준_BOJ' 카테고리의 다른 글
[백준] 2602번 - 돌다리 건너기 (C++) 문제 및 풀이 (0) | 2022.02.04 |
---|---|
[백준] 18113번 - 그르다 김가놈 (C++) 문제 및 풀이 (0) | 2022.02.04 |
[백준] 11365번 - !밀비 급일 (C++) 문제 및 풀이 (0) | 2022.02.03 |
[백준] 7511번 - 소셜 네트워킹 어플리케이션 (C++) 문제 및 풀이 (0) | 2022.01.30 |
[백준] 16507번 - 어두운 건 무서워 (C++) 문제 및 풀이 (0) | 2022.01.29 |
댓글