[프로그래머스] Level3 - 추석 트래픽

 
by 박신종

> 문제

문제 : [추석 트래픽]



> 문제풀이

응답완료시간이 오름차순으로 이미 정렬되어있기 때문에,

순서대로 데이터의 (응답완료시간 + 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