[프로그래머스, 340213] [PCCP 기출문제] 1번 / 동영상 재생기 (java)
Problem Solving/Programmers

[프로그래머스, 340213] [PCCP 기출문제] 1번 / 동영상 재생기 (java)

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/340213

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

728x90

메모리: 75.9 MB, 시간: 0.12 ms

사용 알고리즘: 구현

import java.util.*;

class Solution {
    public String solution(String video_len, String pos, String op_start, String op_end, String[] commands) {
        
       StringTokenizer st;
        
        // 현재 시간 구하기
        st = new StringTokenizer(pos, ":");
        int now = Integer.parseInt(st.nextToken()) * 60 + Integer.parseInt(st.nextToken());
        
        // 비디오 길이 구하기
        st = new StringTokenizer(video_len, ":");
        int len = Integer.parseInt(st.nextToken()) * 60 + Integer.parseInt(st.nextToken());
        
        // 오프닝 건너뛰기
        st = new StringTokenizer(op_start, ":");
        int start = Integer.parseInt(st.nextToken()) * 60 + Integer.parseInt(st.nextToken());
        st = new StringTokenizer(op_end, ":");
        int end = Integer.parseInt(st.nextToken()) * 60 + Integer.parseInt(st.nextToken());
        
        // 명령 수행
        for(String command : commands) {
            if(start <= now && now <= end) now = end;
            if(command.equals("prev")) {
                now = now - 10 <= 0 ? 0 : now - 10;
            }
            else {
                now = now + 10 >= len ? len : now + 10;
            }
        }
        if(start <= now && now <= end) now = end;
        
        // 시간 변환
        int hour = now / 60;
        int minute = now % 60;
        StringBuilder answer = new StringBuilder();
        if(hour < 10) answer.append("0");
        answer.append(hour).append(":");
        if(minute < 10) answer.append("0");
        answer.append(minute);
        
        return answer.toString();
    }
}
728x90