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


풀이
class Solution {
public String solution(
String video_len, String pos, String op_start, String op_end, String[] commands
) {
// "mm:ss" -> 초 단위 변환
int videoSec = Integer.parseInt(video_len.substring(0, 2)) * 60
+ Integer.parseInt(video_len.substring(3, 5));
int curSec = Integer.parseInt(pos.substring(0, 2)) * 60
+ Integer.parseInt(pos.substring(3, 5));
int opStartSec = Integer.parseInt(op_start.substring(0, 2)) * 60
+ Integer.parseInt(op_start.substring(3, 5));
int opEndSec = Integer.parseInt(op_end.substring(0, 2)) * 60
+ Integer.parseInt(op_end.substring(3, 5));
// 초기 위치가 오프닝 구간이면 오프닝 끝으로 이동
if (opStartSec <= curSec && curSec <= opEndSec) {
curSec = opEndSec;
}
// 명령어 순서대로 처리
for (String cmd : commands) {
if (cmd.equals("prev")) {
// 10초 이전으로 이동, 음수가 되면 0으로
curSec -= 10;
if (curSec < 0) curSec = 0;
} else if (cmd.equals("next")) {
// 10초 이후로 이동, 동영상 길이를 넘으면 마지막 위치로
curSec += 10;
if (curSec > videoSec) curSec = videoSec;
}
// 이동 후 오프닝 구간이면 오프닝 끝으로 이동
if (opStartSec <= curSec && curSec <= opEndSec) {
curSec = opEndSec;
}
}
// 초 단위를 "mm:ss" 형태로 변환
String mm = String.format("%02d", curSec / 60);
String ss = String.format("%02d", curSec % 60);
return mm + ":" + ss;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
| [Programmers] Lv.1 | [PCCE 기출문제] 10번 / 공원 | Java (0) | 2025.11.07 |
|---|---|
| [Programmers] Lv.1 | [PCCE 기출문제] 9번 / 지폐 접기 | Java (0) | 2025.11.07 |
| [Programmers] Lv.1 | 유연근무제 | Java (0) | 2025.11.06 |
| [Programmers] Lv.1 | 택배 상자 꺼내기 | Java (0) | 2025.11.06 |
| [Programmers] Lv.0 | 중복된 숫자 개수 | Java (0) | 2025.11.06 |
댓글