https://school.programmers.co.kr/learn/courses/30/lessons/340213
당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.
동영상의 길이를 나타내는 문자열 video_len, 기능이 수행되기 직전의 재생위치를 나타내는 문자열 pos, 오프닝 시작 시각을 나타내는 문자열 op_start, 오프닝이 끝나는 시각을 나타내는 문자열 op_end, 사용자의 입력을 나타내는 1차원 문자열 배열 commands가 매개변수로 주어집니다. 이때 사용자의 입력이 모두 끝난 후 동영상의 위치를 "mm:ss" 형식으로 return 하도록 solution 함수를 완성해 주세요.
제한사항🚫
입출력 예
입출력 예 설명
입출력 예 #1
입출력 예 #2
입출력 예 #3
import java.util.*;
class Solution {
public String solution(String video_len, String pos, String op_start, String op_end, String[] commands) {
//prev -> 10초 전 -> 10초 미만인 경우 0초로
//next -> 10초 후 -> 남은 시간이 10초 미만 -> video_len으로
//pos: 재생위치, op_start: 오프닝 시작, op_end: 오프닝 끝나는 시각
//pos가 op사이에 있으면 op_end로 이동
//전부 초단위로 변환
int v = Integer.parseInt(video_len.split(":")[0]) * 60 + Integer.parseInt(video_len.split(":")[1]);
int p = Integer.parseInt(pos.split(":")[0]) * 60 + Integer.parseInt(pos.split(":")[1]);
int ops = Integer.parseInt(op_start.split(":")[0]) * 60 + Integer.parseInt(op_start.split(":")[1]);
int ope = Integer.parseInt(op_end.split(":")[0]) * 60 + Integer.parseInt(op_end.split(":")[1]);
//현재 재생 위치가 오프닝 구간인 경우
if(p >= ops && p <= ope){
p = ope;
}
//사용자의 입력 확인
for(String command : commands){
//10초 전으로 이동일 때
if(command.equals("prev")){
//현재 위치가 10초 미만일 때
if(p < 10){
p = 0;
}else{
p -= 10;
}
}else{
//남은 시간이 10초 미만일 때
if(v - p < 10){
p = v;
}else{
p += 10;
}
}
//현재 재생 위치가 오프닝 구간인 경우
if(p >= ops && p <= ope){
p = ope;
}
}
String answer = String.format("%02d:%02d", p/60, p%60);
return answer;
}
}