
😎풀이
time을 : 기준 분리
- 0부터 23까지의 시간을 순회하며, 현재 시간 문자열과 일치하는 경우의 수 탐색
2-1. 특정 자릿수가 ?인 경우, 일치 처리
2-2. 그 외 모두 동등비교
- 0부터 59까지의 분을 순회하며, 현재 분 문자열과 일치하는 경우의 수 탐색
3-1. 특정 자릿수가 ?인 경우, 일치 처리
3-2. 그 외 모두 동등비교
function countTime(time: string): number {
const [hourStr, minStr] = time.split(":")
let validHours = 0
for(let hour = 0; hour < 24; hour++) {
const curHourStr = String(hour).padStart(2, '0')
let isValid = true
for(let i = 0; i < 2; i++) {
if(hourStr[i] === '?') continue
if(curHourStr[i] !== hourStr[i]) {
isValid = false
break
}
}
if(isValid) validHours++
}
let validMins = 0
for(let min = 0; min < 60; min++) {
const curMinStr = String(min).padStart(2, '0')
let isValid = true
for(let i = 0; i < 2; i++) {
if(minStr[i] === '?') continue
if(minStr[i] !== curMinStr[i]) {
isValid = false
break
}
}
if(isValid) validMins++
}
return validHours * validMins
};