1회차
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long solution(int n, vector<int> times) {
long long answer = 0;
vector<int> Line=times;
for(int i=0;i<n;i++){
if(i==n-1){
answer=*min_element(Line.begin(), Line.end());
break;}
Line[min_element(Line.begin(), Line.end()) - Line.begin()]+=times[min_element(Line.begin(), Line.end()) - Line.begin()];
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.01ms, 3.76MB)
테스트 2 〉 통과 (0.14ms, 4.34MB)
테스트 3 〉 실패 (4.56ms, 3.71MB)
테스트 4 〉 통과 (7036.43ms, 7.08MB)
테스트 5 〉 실패 (시간 초과)
테스트 6 〉 실패 (시간 초과)
테스트 7 〉 실패 (시간 초과)
테스트 8 〉 실패 (시간 초과)
테스트 9 〉 통과 (7563.87ms, 3.7MB)
채점 결과
정확성: 44.4
합계: 44.4 / 100.0
2회차
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
long long solution(int n, vector<int> times) {
long long answer = 0;
sort(times.begin(),times.end());
long long min=1;
long long max=(long long)times[times.size()-1]*n;
while(min<=max){
long long mid=(max+min)/2;
long long count=0;
for(int i=0;i<times.size();i++){
count+=mid/times[i];
}
if(count<n)min=mid+1;
else{
if(mid<=max){
answer=mid;
}
max=mid-1;
}
}
return answer;
}
정확성 테스트
테스트 1 〉 통과 (0.01ms, 4.34MB)
테스트 2 〉 통과 (0.03ms, 3.98MB)
테스트 3 〉 통과 (0.38ms, 3.99MB)
테스트 4 〉 통과 (43.62ms, 6.82MB)
테스트 5 〉 통과 (45.03ms, 6.83MB)
테스트 6 〉 통과 (49.87ms, 6.57MB)
테스트 7 〉 통과 (54.95ms, 6.82MB)
테스트 8 〉 통과 (53.87ms, 6.82MB)
테스트 9 〉 통과 (0.01ms, 3.92MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0