기술 블로그
[프로그래머스] 동영상 재생기 본문
반응형
function converter(str){
const time = str.split(":").map(Number)
const calTime = time[0]*60 + time[1]
return calTime
}
function solution(video_len, pos, op_start, op_end, commands) {
var answer = '';
const inputs = [video_len, pos,op_start,op_end]
const [calLen, calPos, calOpStart, calOpEnd] = inputs.map((data)=>converter(data))
let result = calPos
function next(time){
return time+10
}
function prev(time){
return time-10
}
function passOp(time){
if(calOpStart <= time && time <= calOpEnd){
return calOpEnd
}else{
return time
}
}
for(let i of commands){
result = passOp(result)
if(i ==="next"){
result = next(result)
if(calLen<result){
result = calLen
}
}else if(i ==="prev"){
result = prev(result)
if(result<0){
result = 0
}
}
result = passOp(result)
}
const mm = Math.floor(result/60)
const ss = result%60
const mmString = mm < 10 ? '0'+mm : mm
const ssString = ss < 10 ? '0'+ss : ss
answer = mmString+":"+ssString
return answer;
}
배운 점
- 시간 관련 연산을 할 때 분으로 통일하는 것이 편하다.
보완할 점
- str.padStart(len,replaceText) 를 활용하자
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
반응형
'알고리즘' 카테고리의 다른 글
js heapq (0) | 2023.11.14 |
---|---|
[JS] 알고리즘을 위한 js - 2 문자열과 순회문 (0) | 2023.11.13 |
[JS] 알고리즘을 위한 js - 1 배열 (0) | 2023.11.13 |
[프로그래머스] 조이스틱 (0) | 2023.11.01 |
프로그래머스 체육복 (0) | 2023.10.26 |
Comments