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 |