문제
https://www.acmicpc.net/problem/18312
소스코드1
import sys
input = sys.stdin.readline
if __name__ == "__main__":
n,k = map(int,input().split())
res = 0
for h in range(n+1):
if h < 10:
hh = '0' + str(h)
else:
hh = str(h)
for m in range(60):
if m < 10:
mm = '0' + str(m)
else:
mm = str(m)
for s in range(60):
if s < 10:
ss = '0' + str(s)
else:
ss = str(s)
if str(k) in (hh+mm+ss):
res +=1
print(res)
소스코드2
import sys
input = sys.stdin.readline
if __name__ == "__main__":
n,k = map(int,input().split())
res = 0
for h in range(n+1):
if h < 10:
hh = '0' + str(h)
else:
hh = str(h)
if str(k) in hh:
res += (60*60)
continue
for m in range(60):
if m < 10:
mm = '0' + str(m)
else:
mm = str(m)
if str(k) in mm :
res += 60
continue
for s in range(60):
if s < 10:
ss = '0' + str(s)
else:
ss = str(s)
if str(k) in ss:
res +=1
print(res)
설명
00:00:00 ~ N:00:00 을 시,분,초로 나누어서 K가 포함되면 +1을 해주도록 하였다.
처음엔 그냥 5:13:14를 51314 이런 숫자로 생각해서 숫자로 처리해주었는데 K = 0 일 수 도 있다는 문제의 조건을 놓쳐서 10 이하인 경우 0을 추가해주어서 문자로 바꾼 후 K가 포함되어있는지 체크해줬다.
소스코드2는 그냥 시에서 해당 숫자가 포함되면 나머지 분, 초는 무조건 포함이므로 60 * 60을 해주고 넘어가고
분에 해당하는 숫자가 나오면 초가 무조건 포함이므로 60을 더해주고 넘어갔다.
시간이 24ms 정도 줄었다.
'Algorithm' 카테고리의 다른 글
[백준][Python]2638 치즈 (0) | 2023.03.08 |
---|---|
[백준][python]15721 번데기 (0) | 2023.03.05 |
[백준][2661]좋은 수열 (0) | 2022.08.08 |
[sql][프로그래머스]입양 시각 구하기(2) (0) | 2022.07.19 |
[프로그래머스]네트워크 (0) | 2022.07.09 |