티스토리 뷰

반응형

https://programmers.co.kr/learn/courses/30/lessons/17676

 

코딩테스트 연습 - [1차] 추석 트래픽

입력: [ "2016-09-15 20:59:57.421 0.351s", "2016-09-15 20:59:58.233 1.181s", "2016-09-15 20:59:58.299 0.8s", "2016-09-15 20:59:58.688 1.041s", "2016-09-15 20:59:59.591 1.412s", "2016-09-15 21:00:00.464 1.466s", "2016-09-15 21:00:00.741 1.581s", "2016-09-1

programmers.co.kr

 

옜날에 C++ 로 풀었었는데 다시 한번 JAVA로 풀어봤다.

풀이 방법은 매우 심플하다. 왜 LV3 인지 잘 모르겠는 문제...

1. 시작시간이랑 끝시간을 구한다.

2. 끝시간 기준 정렬 되있으니까 1초 포함관계를 구하기 위해서는 다음의 것들만 체크하면된다.

   -1) 직전 꺼 끝시간 기준 다음꺼가 걸쳐있는지

   -2) 직전 꺼 끝시간 - 1초 사이에 다음꺼가 끝나는지

   -3) 직전 꺼 끝시간 + 1초 사이에 다음꺼가 시작되는지

 

import java.util.*;
import java.text.SimpleDateFormat;
class Solution {
    class Point{
        long start, end;
        Point(long st,long ed){
            start = st;
            end =ed;
        }
    }
    public int solution(String[] lines) {
    
        int answer = 0;
        try{    
            ArrayList<Point> arr = new ArrayList<>();
            for (int i=0; i<lines.length; i++) {
                String[] items = lines[i].split(" ");
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
                Date date = sdf.parse(items[0]+" "+items[1]);
                long end = date.getTime();
                long start = end+1-(long)((Double.parseDouble(items[2].substring(0,items[2].length()-1)) * 1000));
                arr.add(new Point(start, end));
            }
            
            for (int i=0; i<arr.size(); i++ ){
                long iend = arr.get(i).end;
                int cnt =1;
                for (int j=i+1; j<arr.size(); j++){
                    if(iend >= arr.get(j).start && iend <= arr.get(j).end ||
                      iend >= arr.get(j).start && iend-999 <= arr.get(j).end ||
                      iend + 999 >= arr.get(j).start) cnt++;
                }
                answer = answer < cnt ? cnt : answer;
            }
        }catch(Exception e) {}
        return answer;
    }
}
반응형

'알고리즘' 카테고리의 다른 글

[프로그래머스] 동굴탐험  (1) 2022.04.23
[프로그래머스] 경주로건설  (0) 2022.04.23
k진수에서 소수 개수 구하기  (0) 2022.03.15
백준 7576 - 토마토  (1) 2022.03.10
[프로그래머스] N으로 표현  (1) 2021.12.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함