-
[프로그래머스] 동영상재생기 자바코딩테스트 2025. 3. 25. 15:22반응형
https://school.programmers.co.kr/learn/courses/30/lessons/340213
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
시간계산과 관련된 문제이다.
String으로 주어진 시간을 초단위 int 값으로 변환하여 문제를 해결하였다.
public class VideoPlayer { public String solution(String video_len, String pos, String op_start, String op_end, String[] commands) { for (String command : commands) { pos = skipOpening(pos, op_start, op_end); pos = calTime(pos, command, video_len); } return skipOpening(pos, op_start, op_end); } //현재시간에서 사용자요청 처리. public String calTime(String pos, String command, String video_len) { int posTime = convertTime(pos); int vidTime = convertTime(video_len); if ("prev".equals(command)) { posTime -= 10; if (posTime < 0) posTime = 0; } else if ("next".equals(command)) { posTime += 10; if (posTime > vidTime) posTime = vidTime; } return timeToString(posTime); } /* 현재위치와 오프닝구간을 비교하여 결과 반환*/ public String skipOpening(String pos, String op_start, String op_end) { int posTime = convertTime(pos); int opStart = convertTime(op_start); int opEnd = convertTime(op_end); return (opStart <= posTime && posTime <= opEnd) ? timeToString(opEnd) : timeToString(posTime); } /* * mm:ss 형태를 초의 정수값으로 변환 * */ public int convertTime(String time) { String[] timeArr = time.split(":"); int min = Integer.parseInt(timeArr[0]); int sec = Integer.parseInt(timeArr[1]); return min * 60 + sec; } public String timeToString(int time) { int min = time / 60; int sec = time % 60; return String.format("%02d:%02d", min, sec); } }
반응형'코딩테스트' 카테고리의 다른 글
[프로그래머스] 가장 많이 받은 선물 자바 (0) 2025.03.27 [프로그래머스] [PCCE 기출문제] 10번 / 공원 (0) 2025.03.26 [프로그래머스] [PCCE 기출문제] 9번 / 지폐 접기 자바 (0) 2025.03.25 [프로그래머스] 유연근무제 자바 (0) 2025.03.24 JAVA 택배상자꺼내기 (1) 2025.03.24