Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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 29 30
Archives
Today
Total
관리 메뉴

Younghun Go

BOJ 2792 - 보석 상자 본문

알고리즘

BOJ 2792 - 보석 상자

고영훈 2020. 9. 21. 22:47

문제


보석 공장에서 보석 상자를 유치원에 기증했다. 각각의 보석은 M가지 서로 다른 색상 중 한 색상이다. 원장 선생님은 모든 보석을 N명의 학생들에게 나누어 주려고 한다. 이때, 보석을 받지 못하는 학생이 있어도 된다. 하지만, 학생은 항상 같은 색상의 보석만 가져간다.

한 아이가 너무 많은 보석을 가져가게 되면, 다른 아이들이 질투를 한다. 원장 선생님은 이런 질투심을 수치화하는데 성공했는데, 질투심은 가장 많은 보석을 가져간 학생이 가지고 있는 보석의 개수이다. 원장 선생님은 질투심이 최소가 되게 보석을 나누어 주려고 한다.

상자에 빨간 보석이 4개 (RRRR), 파란 보석이 7개 (BBBBBBB) 있었고, 이 보석을 5명의 아이들에게 나누어 주는 경우를 생각해보자. RR, RR, BB, BB, BBB로 보석을 나누어주면 질투심은 3이 되고, 이 값보다 작게 나누어 줄 수 없다.

상자 안의 보석 정보와 학생의 수가 주어졌을 때, 질투심이 최소가 되게 보석을 나누어주는 방법을 알아내는 프로그램을 작성하시오.

 


이분 탐색을 활용하는 문제이다. 이분 탐색 중에서 파라메트릭 서치를 사용할 줄 알아야한다. 

파라메트릭 서치는 최적화 문제를 결정 문제로 바꾸어 푸는 것이라고 할 수 있다.

 

최적화 문제란 찾고자 하는 최적의 값을 찾는 것이라고 할 수 있겠다. 예를 들어 최솟값이나 최댓값, 조건을 만족하는 최적의 값을 찾는 것을 우리는 최적화 문제라고 부를 수 있다.

 

결정 문제

란 최적화 문제를 "yes" or "no" 둘 중 하나의 값으로 결정되는 문제를 말한다.

 

이 정의를 통해서 최적화 문제를 "yes" or "no"라는 두 가지 선택지를 찾아가며 이분 탐색을 적용한다. 즉 범위가 반씩 줄어들 것이다.

 

보석 상자 문제에서 최적화 문제는 무엇일까? 질투심이 최소가 되게 나누어주기 위해선 각 사람에게 최대한 공평하게 나눠줘야한다. 여기에서 최적화 문제는 보석을 최대한 공평하게 나눠주어 질투심의 최소값을 구하는 것이다.

 

즉 질투심을 기준으로 파라메트릭 서치하여 최대한 공평하게 나눠주는 최적의 점을 찾는 것이라고 이해했다.

 

 

'알고리즘' 카테고리의 다른 글

최단 경로 알고리즘 정리  (0) 2021.03.16
BOJ 2206 - 벽 부수고 이동하기  (0) 2020.09.13
BOJ 4991 - 로봇 청소기  (0) 2020.09.13
BOJ 10826 - 피보나치 수 4  (0) 2020.09.06
BOJ 2294 - 동전 2  (0) 2020.09.06
Comments