[Programmers] - [1차] 추석 트래픽

문제

카카오 인턴십 문제를 풀어보자.

코드

import java.text.SimpleDateFormat;
import java.util.*;

class Solution {
    SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss.SSS");
    
    public int solution(String[] lines) throws Exception{
        int[] count = new int[lines.length];
        int max = 0;
        
        for(int i=0;i<lines.length;i++){
            String[] pre = lines[i].split(" ");
            Date preEndDate = format.parse(pre[1]);
            long preEnd = preEndDate.getTime();
            //00:00:00.000 이면 -32400000
            //23:59:59.999 이면 53999999
            
            for(int j=i;j<lines.length;j++){
                String[] next = lines[j].split(" ");
                Date nextEndDate = format.parse(next[1]);
                long nextEnd = nextEndDate.getTime();//double 반환
                
                double sec = Double.parseDouble(next[2].substring(0, next[2].length()-1));//처리시간 따오기
                
                long nextStart = (long) ((double)nextEnd - sec*1000 + 1);
                
                if(preEnd + 1000 > nextStart){
                    count[i]++;
                    max = Math.max(max,count[i]);
                }
            }
        }
        return max;
    }
}

코드 설명

SimpleDateFormat을 꼭 알아두면 쓸모 있겠다.

요약

  • getTime()으로 날짜를 double형 숫자로 반환할 수 있다.