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
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 68935] 3진법 뒤집기 (java) (0) | 2025.01.14 |
---|---|
[프로그래머스, 17682] [1차] 다트 게임 (java) (0) | 2025.01.14 |
[프로그래머스, 86051] 없는 숫자 더하기 (java) (0) | 2025.01.13 |
[프로그래머스, 12913] 땅따먹기 (java) (0) | 2025.01.07 |
[프로그래머스, 12930] 이상한 문자 만들기 (java) (0) | 2025.01.07 |