📝 문제
💡 다솜이는 타임머신을 타고 8364년으로 갔다.
다행히 지구는 평화롭다.
다솜이는 2008년으로 돌아가기 전에 시계를 샀다.
다솜이는 시계를 볼 줄 모르기 때문에, 디지털 시계를 샀다.
디지털 시계는 HH:MM:SS와 같은 모양으로 시간을 나타내 준다.
그리고 앞에서부터 차례대로 HH는 시, MM은 분, SS는 초를 나타낸다.
다솜이는 8364년에는 2008년과 같은 방법으로 시간을 나타내는지 모른다.
2008년엔 시:분:초를 나타내는지만, 8364년엔 분:시:초로 나타낼지도 모른다.
다행히 시는 01부터 12, 분은 00부터 59, 초는 00부터 59를 나타낸다.
다솜이의 시계에 쓰여 있는 숫자가 주어졌을 때,
이 시간을 읽을 수 있는 가능한 방법의 수를 출력하는 프로그램을 작성하시오.
나타내는 시간이 같더라도, 시, 분, 초를 읽을 수 있는 위치가 다르면 다른 방법으로 센다.
또한, 방법의 수가 0일 수도 있다.
예를 들어, 21:23:01 은 21분 23초 01시 로 읽을 수도 있지만, 21초 23분 01시로 읽을 수도 있다.
⚙️ 입력 : 첫째 줄에 시간이 주어진다.
시간은 DD:DD:DD와 같은 꼴로 주어진다.
항상 8자리(:도 포함)로만 들어오며, D는 0-9 사이의 숫자이다.
⚙️ 출력 : 첫째 줄에 시간을 읽을 수 있는 가능한 방법의 수를 출력한다.
1440번: 타임머신
첫째 줄에 시간이 주어진다. 시간은 DD:DD:DD와 같은 꼴로 주어진다. 항상 8자리(:도 포함)로만 들어오며, D는 0-9 사이의 숫자이다.
www.acmicpc.net
✅ 풀이
time = list(map(int, input().split(":")))
count = 0
no = True
for i in range(len(time)):
if time[i] >= 0 and time[i] < 60:
if time[i] >= 1 and time[i] <= 12:
count += 2
else:
no = False
if no:
print(count)
else:
print(0)
💡 :로 구분된 세가지 숫자를 대상으로 조건을 나눴다.
만약 시간이 될 수 있는 숫자라면, 나머지 두 숫자가 분과 초로 이루어지는 2가지 경우가 있다.
그러나 그렇지 못한 숫자라면, 시간이 될 수 있는 숫자를 세는 과정에서 중복이 되므로 세지 않았다.
또한, 숫자가 시간으로 표시할 수 있는 범위를 벗어난 경우를 체크하여
0을 출력하도록 해주었다.
📝 문제
💡 다솜이는 타임머신을 타고 8364년으로 갔다.
다행히 지구는 평화롭다.
다솜이는 2008년으로 돌아가기 전에 시계를 샀다.
다솜이는 시계를 볼 줄 모르기 때문에, 디지털 시계를 샀다.
디지털 시계는 HH:MM:SS와 같은 모양으로 시간을 나타내 준다.
그리고 앞에서부터 차례대로 HH는 시, MM은 분, SS는 초를 나타낸다.
다솜이는 8364년에는 2008년과 같은 방법으로 시간을 나타내는지 모른다.
2008년엔 시:분:초를 나타내는지만, 8364년엔 분:시:초로 나타낼지도 모른다.
다행히 시는 01부터 12, 분은 00부터 59, 초는 00부터 59를 나타낸다.
다솜이의 시계에 쓰여 있는 숫자가 주어졌을 때,
이 시간을 읽을 수 있는 가능한 방법의 수를 출력하는 프로그램을 작성하시오.
나타내는 시간이 같더라도, 시, 분, 초를 읽을 수 있는 위치가 다르면 다른 방법으로 센다.
또한, 방법의 수가 0일 수도 있다.
예를 들어, 21:23:01 은 21분 23초 01시 로 읽을 수도 있지만, 21초 23분 01시로 읽을 수도 있다.
⚙️ 입력 : 첫째 줄에 시간이 주어진다.
시간은 DD:DD:DD와 같은 꼴로 주어진다.
항상 8자리(:도 포함)로만 들어오며, D는 0-9 사이의 숫자이다.
⚙️ 출력 : 첫째 줄에 시간을 읽을 수 있는 가능한 방법의 수를 출력한다.
1440번: 타임머신
첫째 줄에 시간이 주어진다. 시간은 DD:DD:DD와 같은 꼴로 주어진다. 항상 8자리(:도 포함)로만 들어오며, D는 0-9 사이의 숫자이다.
www.acmicpc.net
✅ 풀이
time = list(map(int, input().split(":")))
count = 0
no = True
for i in range(len(time)):
if time[i] >= 0 and time[i] < 60:
if time[i] >= 1 and time[i] <= 12:
count += 2
else:
no = False
if no:
print(count)
else:
print(0)
💡 :로 구분된 세가지 숫자를 대상으로 조건을 나눴다.
만약 시간이 될 수 있는 숫자라면, 나머지 두 숫자가 분과 초로 이루어지는 2가지 경우가 있다.
그러나 그렇지 못한 숫자라면, 시간이 될 수 있는 숫자를 세는 과정에서 중복이 되므로 세지 않았다.
또한, 숫자가 시간으로 표시할 수 있는 범위를 벗어난 경우를 체크하여
0을 출력하도록 해주었다.