Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 쿠링
- relay
- Compose
- 백준
- architecture
- Gradle
- boj
- TEST
- activity
- Coroutines
- Coroutine
- textfield
- Kotlin
- AWS
- Hilt
- livedata
- 프로그래머스
- androidStudio
- MyVoca
- Codeforces
- android
- pandas
- Python
- Rxjava
- 코루틴
- MiTweet
- 코드포스
- 암호학
- ProGuard
- GitHub
Archives
- Today
- Total
이동식 저장소
16562. 친구비 본문
오랜만에 문제 풀이를 작성해 본다.
16562번: 친구비
첫 줄에 학생 수 N (1 ≤ N ≤ 10,000)과 친구관계 수 M (0 ≤ M ≤ 10,000), 가지고 있는 돈 k (1 ≤ k ≤ 10,000,000)가 주어진다. 두번째 줄에 N개의 각각의 학생이 원하는 친구비 Ai가 주어진다. (
www.acmicpc.net
친구를 돈으로 사려는 불쌍한 준석이의 이야기이다. 음.. 나름 꿀알바 같기도 하고?
친구의 친구는 친구다라는 말이 매우 중요하다. 준석이가 학생 $i$와 친구가 되었다고 해 보자. 친구의 친구는 친구이므로 준석이는 학생 $i$번의 친구와도 친구이다. 같은 원리로 학생 $i$번의 친구의 친구와도 친구이다. 따라서 서로 친구인 그룹의 구성원 중 한 명에게만 돈을 주면 그 그룹의 모든 사람과 친구가 될 수 있다. 이때 당연히 친구비가 가장 싼 친구 한 명에게만 돈을 줘야 한다.
주어진 친구 관계를 그래프로 나타내고, 그래프를 탐색하여 친구 그룹을 찾을 수 있다. 각 그룹에서 가장 싼 친구비의 합을 구하자. 이 값이 $k$ 이하라면 준석이는 모든 학생과 친구가 될 수 있고, 그렇지 않다면 Oh no...
주의
나는 친구의 친구는 친구다라는 말을 잘못 이해했다. 그래프에서 인접한 한 개의 노드에만 친구 관계가 뻗어나가는 걸로 생각했다. DP로 풀어야 하나 고민하고 있었는데, 아무리 생각해도 이상해서 다시 읽어보니 내가 틀렸더라.
이게 골드 3? 실1~골5 정도가 적당하지 않나.
'Problem Solving > BOJ' 카테고리의 다른 글
16637. 괄호 추가하기 (0) | 2021.04.17 |
---|---|
20040. 사이클 게임 (0) | 2021.04.03 |
1407. 2로 몇 번 나누어질까 (0) | 2021.01.14 |
1199. 오일러 회로 (0) | 2021.01.07 |
20440. 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 (0) | 2020.12.30 |
Comments