[백준]B2-1440

oxllz·2022년 2월 24일
0

백준-브론즈

목록 보기
49/65
post-thumbnail

문제

다솜이는 타임머신을 타고 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 사이의 숫자이다.


출력

첫째 줄에 시간을 읽을 수 있는 가능한 방법의 수를 출력한다.


풀이

from itertools import permutations
perms = list(permutations(map(int, input().split(":"))))
count = 0
for a, b, c in perms:
    if 1 <= a <= 12 and 0 <= b <= 59 and 0 <= c <= 59:
        count += 1
print(count)

permutations : 순열, 중복이 없고 순서가 존재한다.
순열을 이용해 시:분:초 가 가능한 경우의 수를 카운트한다.

for a, b, c in perms:
for perm in perms 를 이용하여 perm[0] 을 사용하려고 하니 경고줄이 떠서 검색해보다가 저런 방식으로 쓰는 방법을 알게되었다.


  • 생각할 점
    다른분의 코드를 보면 바로 이해가 되고 이렇게 풀면 되는구나 느끼는데 왜 혼자 생각하면 안될까..?? 좀 더 새로운 방식으로 생각하는 힘을 길러야겠다.

0개의 댓글