
😎풀이
- 0시부터 23시 정의
- 0분부터 59분 정의
:
를 기준으로 현재 시간과 분에 해당하는 문자열 분리
- 시간 및 분 순회
4-1. 현재 문자가 ?
라면 자릿수 비교 생략
4-2. 현재 문자가 ?
가 아니면서 자릿수가 다르다면 다음 수 탐색
- 확인된 가장 늦은 시간 반환환
function maximumTime(time: string): string {
const hour = Array.from({ length: 24 }, (_, idx) => idx)
const min = Array.from({ length: 60 }, (_, idx) => idx)
const [curHour, curMin] = time.split(":")
let maxHour = ''
let maxMin = ''
for(const h of hour) {
const strHour = String(h).padStart(2, '0')
let isValid = true
for(let i = 0; i < strHour.length; i++) {
if(curHour[i] === '?') continue
if(curHour[i] !== strHour[i]) {
isValid = false
break
}
}
if(!isValid) continue
maxHour = strHour
}
for(const m of min) {
const strMin = String(m).padStart(2, '0')
let isValid = true
for(let i = 0; i < strMin.length; i++) {
if(curMin[i] === '?') continue
if(curMin[i] !== strMin[i]) {
isValid = false
break
}
}
if(!isValid) continue
maxMin = strMin
}
return `${maxHour}:${maxMin}`
};