문제 - 시각


  • 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하라

제한 사항


  • 첫째 줄에 정수 N이 입력된다. (0 <= N <= 23)

아이디어


반복문

  • 반복문을 돌면서 3이 포함되는 경우 개수를 센다.

코드


def solution(n: int) -> int:
    ret = 0
    for h in range(n + 1):
        for m in range(60):
            for s in range(60):
                if 3 in [h // 10, h % 10, m // 10, m % 10, s // 10, s % 10]:
                    ret += 1
    return ret

def solution(n: int) -> int:
    count = 0
    for h in range(n + 1):
        for m in range(60):
            for s in range(60):
                if '3' in str(h) + str(m) + str(s):
                    count += 1
    return count

if __name__ == '__main__':
    n = int(input())
    print(solution(n))

개선할 점


  • 처음에 3이 나오는 경우인줄 알고, 코드를 다르게 작성하였는데 문제를 꼼꼼히 읽어봐야겠다.

  • 문자열도 in 연산이 되는지 몰랐었는데 다음부터는 리스트로 변환하지말고 바로 문자열에 in 연산을 사용해야겠다.

참고 문헌


>> Home