Skip to content

Commit 00972c0

Browse files
authored
Create PG_광고삽입.java
1 parent ed01b23 commit 00972c0

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

250303/PG_광고삽입.java

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
class Solution {
2+
public String solution(String play_time, String adv_time, String[] logs) {
3+
int playTime = changeToSec(play_time);
4+
int advTime = changeToSec(adv_time);
5+
6+
int[] prefixSum = new int[99 * 3600 + 59 * 60 + 60];
7+
8+
for (String log : logs) {
9+
String[] l = log.split("-");
10+
11+
int start = changeToSec(l[0]);
12+
int end = changeToSec(l[1]);
13+
14+
for (int i = start; i < end; i++) {
15+
prefixSum[i]++;
16+
}
17+
}
18+
19+
long sum = 0;
20+
long maxTime = 0;
21+
22+
for (int i = 0; i < advTime; i++) {
23+
sum += prefixSum[i];
24+
}
25+
26+
long maxSum = sum;
27+
28+
for (int i = advTime; i < playTime; i++) {
29+
sum += prefixSum[i] - prefixSum[i - advTime];
30+
31+
if (sum > maxSum) {
32+
maxSum = sum;
33+
maxTime = i - advTime + 1;
34+
}
35+
}
36+
37+
return changeToString(maxTime);
38+
}
39+
40+
public int changeToSec(String time) {
41+
String[] times = time.split(":");
42+
43+
int hour = Integer.parseInt(times[0]) * 3600;
44+
int min = Integer.parseInt(times[1]) * 60;
45+
int sec = Integer.parseInt(times[2]);
46+
47+
return hour + min + sec;
48+
}
49+
50+
public String changeToString(long time) {
51+
long hour = time / 3600;
52+
long min = time % 3600 / 60;
53+
long sec = time % 3600 % 60;
54+
55+
String h = (hour < 10 ? "0" + hour : hour + "");
56+
String m = (min < 10 ? "0" + min : min + "");
57+
String s = (sec < 10 ? "0" + sec : sec + "");
58+
59+
return h + ":" + m + ":" + s;
60+
}
61+
}

0 commit comments

Comments
 (0)