알고리즘 문제 풀기
프로그래머스: [PCCP 기출문제] 1번 동영상 재생기 - javascript(단순 구현)
Fo_rdang
2024. 9. 12. 10:29
반응형
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/340213
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답 풀이
단순 구현 문제이고, commands 반복문이 끝난 시간에도 오프닝 구간인지 확인해주는 것 정도만 신경써주면 된다.
정답 코드
function solution(video_len, pos, op_start, op_end, commands) {
pos = transTime(pos)
video_len = transTime(video_len)
op_start = transTime(op_start)
op_end = transTime(op_end)
for(let command of commands){
pos = opening(pos, op_start, op_end)
if(command === "next"){
pos = next(pos, video_len)
}
else {
pos = prev(pos)
}
}
pos = opening(pos, op_start, op_end)
return output(pos)
function next(time,video_len){
time += 10
if(time > video_len) return video_len
else return time
}
function prev(time){
time -= 10
if(time < 0) return 0
else return time
}
function opening(time, op_start, op_end){
if(time >= op_start && time <= op_end) return op_end
else return time
}
function transTime(str){
let [mm,ss] = str.split(":");
let amount = mm*60 + ss*1
return amount
}
function output(time){
let mm = parseInt(time/60)
let ss = time%60
mm = String(mm).padStart(2,0)
ss = String(ss).padStart(2,0)
return `${mm}:${ss}`
}
}
//commands 반복문으로 명령어에 따라 함수 이동
//next 함수
//prev 함수
//오프닝 구간인지 확인하는 함수
//초로 다 변환하는 함수
//마지막에 다시 맞는 형식으로 출력하는 함수
반응형