Contents
https://school.programmers.co.kr/learn/courses/30/lessons/340213
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
테스트 케이스가 제대로 안돼있어서 좀 헤멨다;;; 제대로좀 써놓지 씹련들;;
그래서 질문목록도 찾아보고 테스트 케이스를 좀 더 찾아봤다
문제 설명
동영상 재생기가 있는데 앞뒤 10초 이동 가능하다
오프닝은 알아서 건너뛰어진다
00:00 이하, 동영상의 최대 길이 이상은 갈 수 없다
오프닝 시작시간 ~ 오프닝 종료시간 사이에 가면 오프닝 종료시간으로 간다
만약 현재 위치가 오프닝 사이고 next를 입력받으면?
오프닝 종료시간 + 10을 반환한다
// 프로그래머스 동영상 재생기
// 동영상 재생기의 기능은 10초 전(prev)후(next)로 이동, 오프닝 건너뛰기
// 오프닝 건너뛰기는 자동
// video_len : 동영상의 길이, pos : 기능이 수행될 때의 재생위치, op_start, op_end : 오프닝 시작, 끝나는
// 시간, commands : 사용자의 입력
// 입력이 모두 끝난 뒤 동영상의 위치 반환
class Solution {
public String solution(String video_len, String pos, String op_start, String op_end, String[] commands) {
String answer = pos;
// 현재 위치가 오프닝 구간이면 엔딩으로 감
if (minToSec(answer) >= minToSec(op_start) && minToSec(answer) <= minToSec(op_end)) {
answer = op_end;
}
for (int i = 0; i < commands.length; i++) {
int sec = minToSec(answer);
// 후로 이동
if (commands[i].equals("next")) {
sec += 10;
// 동영상 총 길이보다 길면 안됨
if (sec > minToSec(video_len))
sec = minToSec(video_len);
}
// 전으로 이동
if (commands[i].equals("prev")) {
sec -= 10;
// 음수 방지, 0보다 작아지면 0으로
if (sec < 0)
sec = 0;
}
// 오프닝 구간에 겹치면 엔딩으로 감
if (sec >= minToSec(op_start) && sec <= minToSec(op_end)) {
sec = minToSec(op_end);
}
answer = secToMin(sec);
}
return answer;
}
// 초 -> 분:초
// 초 합계에서 60으로 나눔
// 몫은 분, 나머지는 초로 반환
public String secToMin(int sumSec) {
int min = sumSec / 60;
int sec = sumSec % 60;
// 한자리일 때 앞자리 0 살리기
String strmin = (min < 10) ? "0" + min : Integer.toString(min);
String strsec = (sec < 10) ? "0" + sec : Integer.toString(sec);
return strmin + ":" + strsec;
}
// 분:초 -> 초
// :로 앞뒤 자르면 0번에는 분, 1번에는 초가 들어감
// 분에는 *60, 초를 더해주고 초 반환
public int minToSec(String min) {
String[] time = min.split(":");
return Integer.parseInt(time[0]) * 60 + Integer.parseInt(time[1]);
}
}
[프로그래머스/JAVA] PCCP 기출문제 1번 동영상 재생기
https://school.programmers.co.kr/learn/courses/30/lessons/340213당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다
velog.io
이분 코드 미친 개간단하고 보기도 편하다;; 벽을 느껴버림;
pccp 문제가 적당히 난이도 있고 서사가 있으니까 재미도 있다
다음에 또 돌아오겠음.
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 달리기 경주 (JAVA) (0) | 2024.12.28 |
---|---|
[프로그래머스] [PCCE 기출문제] 9번 / 지폐 접기 (JAVA) (2) | 2024.12.23 |
[프로그래머스] [PCCP 기출문제] 1번 / 붕대 감기 (JAVA) (4) | 2024.12.22 |
[프로그래머스] 옹알이 (2) (JAVA) (2) | 2024.06.25 |
[프로그래머스] 명예의 전당 (1) (JAVA) (1) | 2024.03.30 |