[LeetCode] 2437. Number of Valid Clock Times

Chobby·2025년 10월 30일
1

LeetCode

목록 보기
734/770

😎풀이

  1. time: 기준 분리
  2. 0부터 23까지의 시간을 순회하며, 현재 시간 문자열과 일치하는 경우의 수 탐색
    2-1. 특정 자릿수가 ?인 경우, 일치 처리
    2-2. 그 외 모두 동등비교
  3. 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글