728x90
programmers.co.kr/learn/courses/30/lessons/17676
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int solution(vector<string> lines) {
int answer = 0;
string date,time,spent;
vector<double>start;
vector<double>end;
map<double,int>m;
int minspent= 4;
for(int i=0; i<lines.size();i++){
string str = lines[i];
date = str.substr(0,10);
time = str.substr(11,12);
spent = str.substr(24);
int send = spent.size()-1;
spent = spent.substr(0,send);
double totalseconds = 60*60*stod(time.substr(0,2)) + 60*stod(time.substr(3,2))+stod(time.substr(6,2))+stod(time.substr(9))/1000.0;
double servertime =stod(spent);
start.push_back(totalseconds-servertime+0.001);
end.push_back(totalseconds);
// if(minspent>servertime){minspent = servertime;}
}
int t =0;
for(int i=0; i<start.size(); i++){
double s = start[i];
double e = end[i];
t=1;
for(int j= i+1; j<start.size(); j++){
if(s+1>=start[j]||e+1>start[j]){
t++;
}
}
answer = max(answer,t);
}
return answer;
}
<JAVA>
import java.util.*;
class Solution {
public int solution(String[] lines) {
int answer = 0;
int start[] = new int[lines.length];
int end[] = new int[lines.length];
ArrayList<Integer>arr = new ArrayList<>();
for(int i=0; i<lines.length; i++){
String s = lines[i];
String time = s.substring(11);
String[] temp = time.split(" ");
int st = (int)(Integer.parseInt(temp[0].substring(0,2))*60*60*1000+Integer.parseInt(temp[0].substring(3,5))*60*1000+Double.parseDouble(temp[0].substring(6))*1000);
int diff =(int)(Double.parseDouble(temp[1].substring(0,temp[1].length()-1))*1000);
start[i]=st-diff+1; // 2016-09-15 03:10:33.020 0.011s 는 33.010 부터 33.020까지 처리된 요청
arr.add(st-diff+1);
end[i]=st; //끝나는 시간
arr.add(st); // 시작시간과 끝나는시간을 모두 arr에 담아준다.
}
for(int i=0; i<arr.size();i++ ){
int t = arr.get(i);
int cnt =0;
for(int j=0; j<start.length; j++){
if(t+1000<=end[j]){
if((t+1000)>start[j]){ //실질적으로는 t+999까지가 처리시간 따라서 t+1000과 시작시간은 같으면 cnt 포함 안함
cnt++;
}
}
else{
if(t<=end[j]){cnt++;} //1초전의 시작시간과 끝나는 시간은 같으면 cnt 포함
}
}
if(answer<cnt){answer =cnt;}
}
return answer;
}
}
'프로그래머스 > 문자열' 카테고리의 다른 글
최댓값과 최솟값 (0) | 2021.01.31 |
---|---|
압축 - KaKao 기출 (0) | 2021.01.31 |
JadenCase 문자열 만들기 (0) | 2021.01.27 |
방금 그곡 - Kakao Blind recruitment (0) | 2021.01.25 |
오픈채팅방 (0) | 2021.01.21 |