본문 바로가기
Algorithm

[구현/수학] 백준 18312 시각 - Python

by jangThang 2022. 2. 26.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    18312번: 시각

    정수 N과 K가 입력되었을 때 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 K가 하나라도 포함되는 모든 시각을 세는 프로그램을 작성하시오. 시각을 셀 때는 디지털 시계를 기준으로,

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     00시 00분 00초부터 N시 59분 59초까지 K가 1번이라도 포함되는 모든 시각을 세는 문제입니다.

     

    2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학

     

    [Algorithm] 단골 1번 문제, 구현 / 수학

    [ Contents ] 1. 구현  단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하

    star7sss.tistory.com

     N시 59분 59초까지 1초씩 늘려가며 K가 들어가는지 확인합니다. 다만 주의하실 점은 K가 0일 때입니다.

     1시 2분 5초가 아니라, 01시 02분 05초로 표시되기 때문에 0이 포함됩니다. 이 점을 주의해야 합니다.

     

     

     

    3. 코드

    N, K = input().split()
    time = [0, 0, 0] #hour, minute, sec
    res = 0
    while time != [int(N)+1, 0, 0]:
        #k가 포함되면 res+1
        if K in str(time):
            res += 1
        #K가 0이고 1의 자리이면 res+1
        elif K == '0' and (time[0] < 10 or time[1] < 10 or time[2] < 10):
            res += 1
        time[2] += 1 #1초 지남
    
        if time[2] == 60:
            time[2] = 0
            time[1] += 1
    
        if time[1] == 60:
            time[1] = 0
            time[0] += 1
    print(res)

     저는 1초씩 올리면서, 60이 되면 자릿수를 올려줬습니다.

     중첩 반복문을 통해서 for i in range(60)로 구현하셔도 좋습니다.

     

    star가 되고나서 Tistory

    반응형

    댓글