on
[프로그래머스][JAVA] 광고 삽입
[프로그래머스][JAVA] 광고 삽입
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
import java.text.DecimalFormat; import java.util.StringTokenizer; class Solution { static int [] viewer; public static String solution( String play_time, String adv_time, String [] logs) { int playSec = totalSec(play_time); int advSec = totalSec(adv_time); // System.out.println(ptSec); viewer = new int [playSec]; for ( String log : logs) { String [] log_time = log. split ( "-" ); int start = totalSec(log_time[ 0 ]); int end = totalSec(log_time[ 1 ]); for ( int i = start; i < end; i + + ) { viewer[i] + + ; } } long total_viewer = 0 ; for ( int i = 0 ; i < advSec;i + + ){ total_viewer + = viewer[i]; } int resultSec = 0 ; long max_viewer = total_viewer; for ( int i = advSec; i < playSec; i + + ){ total_viewer = total_viewer + viewer[i] - viewer[i - advSec]; if (total_viewer > max_viewer){ max_viewer = total_viewer; resultSec = i - advSec + 1 ; if (resultSec = = 70 * 3600 - 1 | | resultSec = = 3600 ){ System . out . println (max_viewer); } } } DecimalFormat df = new DecimalFormat( "00" ); StringBuilder sBuilder = new StringBuilder(); sBuilder.append(df. format (resultSec / 3600 ) + ":" ); resultSec% = 3600 ; sBuilder.append(df. format (resultSec / 60 ) + ":" ); resultSec% = 60 ; sBuilder.append(df. format (resultSec)); String answer = sBuilder. toString (); return answer; } private static int totalSec( String time) { StringTokenizer stk = new StringTokenizer(time, ":" ); int totalSec = Integer. parseInt (stk.nextToken()) * 60 * 60 + Integer. parseInt (stk.nextToken()) * 60 + Integer. parseInt (stk.nextToken()); return totalSec; } } Colored by Color Scripter
from http://aig2029.tistory.com/261 by ccl(A) rewrite - 2021-09-08 19:27:26