티스토리 뷰
반응형
https://programmers.co.kr/learn/courses/30/lessons/17676?language=java
import java.util.*;
class Solution {
public int solution(String[] lines) {
Log log = new Log(lines);
return log.convertStrToInt().calculateMaxValue();
}
public static class Log {
private final String[] lines;
private final double[] start;
private final double[] end;
private final int len;
public Log(String[] lines){
this.lines = lines;
len = lines.length;
start = new double[len];
end = new double[len];
}
public int calculateMaxValue() {
int answer = 0;
for(int i=0;i<len;i++) {
answer = Math.max(
answer,Math.max(throughput(start[i],start[i]+1),throughput(end[i],end[i]+1))
);
}
return answer;
}
private int throughput(double s, double e) {
int cnt = 0;
for(int i=0;i<len;i++) {
if (start[i]<e && end[i]>=s) {
cnt++;
}
}
return cnt;
}
public Log convertStrToInt() {
int i = 0;
for(String line : lines){
String[] values = line.split(" ");
double seconds = convertTimeToSec(values[1]);
double size = Double.parseDouble(values[2].substring(0,values[2].length()-1));
double go = seconds - size + 0.001;
double finish = seconds;
start[i] = go;
end[i] = finish;
i++;
}
return this;
}
private double convertTimeToSec(String time) {
String[] hhmmss = time.split(":");
double answer = 0.0;
int add = 3600;
for(String t : hhmmss) {
answer += Double.parseDouble(t)*add;
add/=60;
}
return answer;
}
}
}
convertStrToInt
문자열을 double형으로 변환하고 start와 end에 넣어주는 역할을 한다.
convertTimeToSec
시간에 대한 변환 작업을 여기서 한다.
throughput
특정 구간에 대해서 겹치는 로그 수를 카운팅하여 반환한다.
calculateMaxValue
특정 구간 값을 시작 부분과 끝 부분의 1초 값을 더하여 루프를 돌고 그에 대한 최댓값을 반환한다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [JAVA] 단체 사진 찍기 (0) | 2021.12.10 |
---|---|
[프로그래머스] [JAVA] 카카오프렌즈 컬러링북 (0) | 2021.12.09 |
[프로그래머스] [카카오] [자바] 오픈채팅방 (0) | 2021.12.07 |
[프로그래머스] [자바] [카카오] 문자열 압축 (0) | 2021.12.06 |
[Programmers] [레벨3] 야근지수 (0) | 2021.10.29 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- 프로그래머스
- DRF
- 카카오
- 2021 KAKAO BLIND RECRUITMENT
- PostgreSQL
- Collections
- 자바
- 백준
- Java
- 그래프
- Spring
- Celery
- 파이썬
- BFS
- 면접
- headers
- Command Line
- ubuntu
- docker-compose
- dockerignore
- env
- thread
- setattr
- django
- docker
- Python
- postgres
- Linux
- Pattern
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함