[BOJ] 2573: 빙산 Computer Science/ALGORITHM
Date 2021. 5. 11. 18:36풀이
문제를 두 단계로 나눌 수 있다.
- 모든 빙산에 대해 바다와 맞닿아있는 면적 갯수 계산
- 빙산 업데이트 후 2개 이상으로 분리되었는지 확인
를 빙산이 없어지거나 빙산이 분리될 때 까지 반복해주면 된다.
주의할 점은 모든 빙산에 대해 계산 후 한번에 업데이트를 해줘야 한다.
1. 모든 빙산에 대해 바다와 맞닿아있는 면적 갯수 계산
상하좌우에 0의 갯수만큼 나중에 빙산을 업데이트 해주면 된다.
그래프 내의 빙산을 담고 있는 node
배열에 대해 똑같은 크기를 갖는 diff
배열에 값을 저장해서 계산했다.
2. 빙산 업데이트 후 2개 이상으로 분리되었는지 확인
node
를 순회하며 diff
값을 이용해 update 해주면 된다.
이후 빙산들에 대해 1) 빙산이 여러개로 분리 2) 아예 사라지는 경우
에 대해 체크해줘야 한다.
1)의 경우 빙산 하나에서 BFS를 했을 때 모든 node
에 대해 방문이 되어야 한다. 그렇지 않으면 현재까지 진행한 값(year)를 출력하고 종료한다.
2)는 빙산이 분리되지 않고 다 녹는 경우이다. 0을 출력하고 종료한다.
1)과 2) 둘다 만족하지 않으면 year를 증가시키고 1을 다시 시작하면 된다.
'Computer Science > ALGORITHM' 카테고리의 다른 글
[BOJ] 1747: 소수&팰린드롬 (0) | 2021.05.14 |
---|---|
[BOJ] 5052: 전화번호 목록 (0) | 2021.05.12 |
[BOJ] 5430번: AC (0) | 2021.05.10 |
Recent Posts
Popular posts
Recent Comments
Tag List
도커 알고리즘 GCP JWT 인가 인증 파이썬 컨테이너 네임스페이스 DB 백준 운영체제 클라우드 ORM 리눅스 API DNS IAC 네트워크 JavaScript 테라폼 AWS k8s TypeScript
Total :
Today :
Yesterday :
Blog powered by Tistory, Designed by hanarotg