새소식

Programming/Algorithm

[구현 알고리즘] 문제: 시각

  • -

https://youtu.be/2zjoKjt97vQ?si=ZCZlL6rJzNjPxq8A

본 내용을 위 유투브를 참고해서 작성했음을 밝힙니당~

 

<문제> 시각

출처: 동빈나 유투브
출처: 동빈나 유투브

* 처음에 문제 듣자마자 들은 생각.. 띠용? 
* 이걸 어떻게 풀어야 하나...
* 다행인건 N이 숫자 하나라는 건데..
* 그러면 1인 경우에 1 -> 01:59:59이니까 1보다 큰 숫자들은 곱하기를 하면 되는 것인가? 
* 00:00:00 ~ 01:59:59
    * 00:00:03
    * 00:00:13
    * 00:00:23 -> 이런식으로 6번 (0~5)
        * 00:01:03 -> 이런식으로 6번 * 59번(00~59) = 354번
* 5를 입력하면... 354 * 6 는 아님 왜?? 
문제 해결 아이디어

출처: 동빈나 유투브

# H 입력받기
h = int(input())

count = 0
for i in range(h+1):
    for j in range(60):
        for k in range(60):
            # 매 시각안에 3이 있으면 카운트 증가
            if '3' in str(i) + str(j) + str(k):
                count += 1
print(count)
#%% md
* 그냥 직관대로 짜는 건 맞는데, 반복문 3번 넣어서 h+1까지 하는 거랑 60, 60인거. 
* if '3' in str(i) + str(j) + str(k): 이 부분이 되게 클린하다. 
* 단순히 or로 짜면 되나? 생각했는데 겹치는 부분이 있을 수도 있으니까 파이썬에서는 단순히 '+'로 처리해버렸다. 

깃헙 링크는 요기!

https://github.com/Park-Minjoo/CODINGINTERVIEW_PRACTICE/blob/main/Algorithms/Implementation/02_Time.ipynb

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.