일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 미션
- 세션
- HTTP
- Level2
- mock
- 프로그래머스
- 우아한테크코스
- JUnit5
- yml
- 레벨2
- REDIS
- 서블릿
- 스프링 부트
- AOP
- 트랜잭션
- 스프링부트
- AWS
- Spring Batch
- MSA
- 코드리뷰
- 자바
- CircuitBreaker
- 프리코스
- 우아한세미나
- JPA
- Docker
- Paging
- 백준
- 우테코
- 의존성
Archives
- Today
- Total
늘
2018 KAKAO BLIND RECRUITMENT [추석트래픽] 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/17676
생각보다 단순해서 level3인줄 몰랐다. 하지만 문자열을 나누고 파싱하고 비교하는 등 번거롭고 시간잡아먹는게 많아서 실전이었으면 멘탈 좀 흔들렸을것 같다.
말을 들으면 잘 이해가 안갔다. 하지만 문제에 친절히 그림까지 있어서 그림을 보고 이해했다.
해결 방법은 타임라인의 시작부분과, 끝부분을 기준으로 해서 1초사이에 몇개의 다른 로그들이 더 있는지 카운트해주면 된다. 아래는 소스코드이다.
import java.util.*;
class Solution {
public int solution(String[] lines) {
int answer = 0;
List<Double> start = new ArrayList<>();
List<Double> end = new ArrayList<>();
List<Integer> total = new ArrayList<>();
for(int i=0; i<lines.length; ++i){
String[] log = lines[i].split(" ");
String endDate = log[1];
String times = log[2];
int target = times.indexOf("s");
Double time = Double.parseDouble(times.substring(0,target));//걸린 시간
String[] nano = endDate.split(":");
Double sec = Double.parseDouble(nano[0])*3600;
sec+=Double.parseDouble(nano[1])*60;
sec+=Double.parseDouble(nano[2]);//초단위로 변환
Double startDate = sec-(time)+0.001;
start.add(startDate);
//endDate 초단위 변환->sec
end.add(sec);
}
if(lines.length == 1){
return 1;
}
for(int i=0; i<start.size(); ++i){
int cnt=1;
Double st = start.get(i);
Double ed = end.get(i);
for(int j=i+1; j<start.size(); ++j){
if (Math.abs(ed-start.get(j)) < 1 || Math.abs(ed-end.get(j)) < 1
|| Math.abs(st-start.get(j)) < 1 || Math.abs(st-end.get(j)) < 1
|| (st <= start.get(j) && end.get(j) <= ed)
|| (start.get(j) <= st && ed <= end.get(j))
) {
cnt++;
}
}
answer = Math.max(answer,cnt);
}
return answer;
}
}
728x90
'알고리즘_프로그래머스 > KAKAO' 카테고리의 다른 글
[프로그래머스] C/C++ [2020 KAKAO BLIND RECRUITMENT] 문자열 압축 (0) | 2021.10.26 |
---|---|
c/c++ 2018 카카오 블라인드 [3차] n진수 게임 (0) | 2021.08.24 |
C/C++ 2018 KAKAO BLIND RECRUITMENT [3차] 파일명 정렬 (0) | 2021.08.06 |
2019 KAKAO BLIND RECRUITMENT_실패율 (3) | 2021.03.18 |
Level.2_괄호 변환 (0) | 2021.03.07 |
Comments