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 | 29 | 30 |
Tags
- 동적 데커레이터
- 브릿지
- 추상 팩터리
- 컴포지트 패턴
- 디자인 패턴
- 동적 데코레이터
- 싱글톤
- 프로토타입 패턴
- 싱글턴 패턴
- 브릿지 패턴
- 싱글톤 패턴
- 싱글턴
- 컴포지트
- 팩터리 패턴
- 데커레이터
- 팩터리 메서드
- 내부 팩터리
- 데커레이터 패턴
- 프로토타입
- 모던C++디자인패턴
- 프로토타입 중복처리
- 단순한 빌더
- 그루비 스타일 빌더
- 함수형 팩터리
- 팩터리
- 흐름식 빌더
- 빌더
- 컴포지트 빌더
- 디자인패턴
- 빌더 패턴
Archives
- Today
- Total
GGym's Practice Notes
프로그래머스 Level3_ 입국심사 (C++) 본문
이분탐색 문제이다.
심사관이 맡을 수 있는 사람의 수 += 걸리는 추청 시간 / 심사관이 심사하는데 걸리는 시간
이 공식을 알아야지 문제를 풀 수 있다.
사람의 수가 많거나 같다면 최저시간을 저장한 후 추정시간을 늘리고 적다면 추정시간을 줄여본다.
#include <string> // Level3_ 입국심사 [이분탐색]
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
long long solution(int n, vector<int> times) {
sort(times.begin(), times.end());
long long l=0, r = (long long)(times[times.size()-1]) * n;
long long answer = r;
while(l<=r){
long long mid= (l+r)/2;
long long size = 0;
for(int i = 0; i<times.size(); i++){
size += mid / times[i];
}
if(size < n) l = mid+1;
if(size >= n) {
if(mid < answer)
answer = mid;
r = mid-1;
}
}
return answer;
}
// 입출력
int main(){
int n, n_t;
vector<int> times;
cin >> n >> n_t;
for(int i=0;i<n_t; i++){
int k;
cin >> k;
times.push_back(k);
}
cout << solution(n, times);
}
'Algorithm' 카테고리의 다른 글
프로그래머스 Level3_ 정수삼각형 (C++) (0) | 2020.10.20 |
---|---|
프로그래머스 Level3_ 가장 먼 노드 (C++) (0) | 2020.10.20 |
프로그래머스 Level3_ 네트워크 (C++) (0) | 2020.10.08 |
프로그래머스 Level3_ 2xn 타일링 (C++) (0) | 2020.10.08 |
프로그래머스 Level1_ 크레인 인형뽑기 게임 (C++) (0) | 2020.10.08 |