250x250
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 | 31 |
Tags
- 삼성
- 코테
- MySQL
- BFS
- 코테 준비
- 쉬운 알고리즘 문제
- 알고리즘 문제
- SQL
- STUDYENGLISH
- PyQt
- D4
- 알고리즘
- 코테 대비
- 코딩테스트
- 백준
- 완전탐색
- 원서읽기
- swexpertacademy
- 원서읽자
- 프로그래머스
- englishbook
- sw expert academy
- dfs
- nightroutine
- sw expert
- readingbook
- English
- 원서
- 직무면접
- the midnight library
Archives
- Today
- Total
시나브로
3813. [Professional] 그래도 수명이 절반이 되어서는... 본문
728x90
Solution : 이진 탐색 + 파라메트릭스 서치
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <string>
using namespace std;
int main() {
freopen("inp.inp", "r", stdin);
freopen("out.out", "w", stdout);
int tc = 0;
cin >> tc;
for (int p = 1; p <= tc; p++){
int n = 0;
int k = 0;
cin >> n >> k;
vector<int> list;
int a;
for (int i = 0; i < n; i++) {
cin >> a;
list.push_back(a);
}
vector<int> problem;
for (int i = 0; i < k; i++) {
cin >> a;
problem.push_back(a);
}
int answer = 100000;
int l = 0;
int r = 200000;
while (1) {
int count = 0;
int problem_point = 0;
for(int i=0;i<list.size();i++){
if (answer >= list[i]) {
count++;
if (count == problem[problem_point]) {
count = 0;
problem_point++;
}
}
else {
count = 0;
}
if (problem_point >= problem.size())
break;
}
if (problem_point >= problem.size()) {//okey
r = answer - 1;
}
else {
l = answer + 1;
}
if (r < l) {
answer = l;
break;
}
answer = (r + l) / 2;
}
cout << "#" << p << " " << answer << endl;
}
return 0;
}
swexpertacademy.com/main/learn/course/lectureProblemViewer.do
728x90
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
1949. [모의 SW 역량테스트] 등산로 조성 (0) | 2020.12.02 |
---|---|
9780. 외계인 침공 (0) | 2020.05.25 |
9778. 카드 게임 (0) | 2020.05.19 |
1859. 백만 장자 프로젝트 (0) | 2020.05.17 |
[D5] 9015. 배열의 분할 (0) | 2020.03.18 |
Comments