> 문제
문제 : [추석 트래픽]
> 문제풀이
응답완료시간이 오름차순으로 이미 정렬되어있기 때문에,
순서대로 데이터의 (응답완료시간 + 1000ms) < 각각 (데이터의 처리시작시간)을 만족하면 cnt++ 해주었다.
class Solution {
public int solution(String[] lines) {
int[][] times = new int[lines.length][2];
String[] input = null;
int max = -1;
for(int i=0; i<lines.length; i++){
input = lines[i].split(" ");
int end = toMilliSecond(input[1]);
int start = end - (int)((Float.parseFloat(input[2].substring(0,input[2].length()-1)))*1000)+1;
times[i][0] = start;
times[i][1] = end;
}
int cnt;
for(int i=0; i<times.length; i++){
cnt = 1;
for(int j=i+1; j<times.length; j++){
if(times[i][1]+1000 > times[j][0]) cnt++;
}
if(max < cnt) max = cnt;
}
return max;
}
static int toMilliSecond(String str){
String[] input = str.split(":");
Float mf = Integer.parseInt(input[0])*60*60 + Integer.parseInt(input[1])*60 + Float.parseFloat(input[2]);
return (int)(mf*1000);
}
}
문제 출처 : Programmers
PREVIOUS[프로그래머스] Level4 - 지형 이동