[백준] 2792 보석 상자(C++)

2022. 8. 22. 21:08·Algorithm/Solution
728x90

2792번: 보석 상자 (acmicpc.net)

 

2792번: 보석 상자

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

www.acmicpc.net


난이도 : 실버2

 

해결 과정 :

이분 탐색으로 푸는 문제 였습니다.

나눠줄 때 한 색깔종류로만 나눠줘야 하기 때문에

각 색상의 개수 / 질투심 값과 나눴을 때 나머지가 나온다면 +1 해서 각각 더해진 cnt 값이

학생의 수와 같으면 right 값을 줄여주는 식으로 구현 하였습니다.

맨 첨에 left값을 0으로했다가 100퍼에서 틀렸다고 나오길래 1로 고쳐줬습니다.

 

코드 :

#include <iostream>
#include <algorithm> 
#include <vector>
using namespace std;

int n, m, v[300005], ans;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL), cout.tie(nullptr);

    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        cin >> v[i];
    }
    sort(v, v+m);

    int l = 1, r = v[m - 1];
    while (l<=r) {
        int mid = (l + r) / 2;
        
        int cnt = 0;
        for (int i = 0; i < m; i++) {
            cnt += v[i] / mid;
            if (v[i] % mid != 0) cnt++;
        }

        if (cnt <= n) {
            r = mid - 1;
            ans = mid;
        }
        else {
            l = mid + 1;
        }
    }

    cout << ans;

}
728x90
저작자표시 비영리 (새창열림)

'Algorithm > Solution' 카테고리의 다른 글

[백준] 4179 불!(C++)  (2) 2022.09.30
[백준] 1406 에디터(C++)  (0) 2022.09.20
[백준] 14503 로봇 청소기 (C++)  (0) 2022.08.17
[백준] 15686 치킨 배달(C++)  (0) 2022.07.28
[백준] 2623 음악 프로그램(C++)  (0) 2022.07.15
'Algorithm/Solution' 카테고리의 다른 글
  • [백준] 4179 불!(C++)
  • [백준] 1406 에디터(C++)
  • [백준] 14503 로봇 청소기 (C++)
  • [백준] 15686 치킨 배달(C++)
BeNI
BeNI
코딩하는 블로그
  • BeNI
    코딩못하는컴공
    BeNI
  • 전체
    오늘
    어제
    • Menu (255) N
      • My profile (1)
      • 회고 | 후기 (8)
      • Frontend (66)
        • Article (11)
        • Study (36)
        • 프로그래머스 FE 데브코스 (19)
      • Backend (0)
      • Algorithm (58)
        • Solution (46)
        • Study (12)
      • Major (112) N
        • C&C++ (23)
        • Java (20)
        • Data Structure (14)
        • Computer Network (12)
        • Database (16) N
        • Linux (6)
        • Architecture (3)
        • Lisp (15)
        • OS (1)
        • Security (2)
      • etc (2)
  • 링크

    • 깃허브
    • 방명록
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    프로그래머스
    파일처리
    lisp
    react
    자료구조
    데브코스
    리팩토링
    C++
    백준
    Algorithm
  • hELLO· Designed By정상우.v4.10.2
BeNI
[백준] 2792 보석 상자(C++)
상단으로

티스토리툴바