[프로그래머스, 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