흰토끼의 회중시계
항상 아날로그 회중시계를 들고 다니던 흰토끼는 얼마전 큰 결심을 하고 최신 디지털 회중시계를 주문했습니다. 큰 기대감을 가지고 택배를 뜯어본 흰토끼는 시간이 표시되는 숫자 4가지가 뒤죽박죽 섞여 제대로 표시되지 않는 것을 보고 큰 실망감을 가졌습니다. 유감스럽게도 반품을 하고 새 제품을 받을 시간이 없던 흰토끼는 자신이 직접 시계를 고치려고 합니다. 흰토끼는 과연 디지털 회중시계를 고칠 수 있을까요?
입력 예시 1
0 1 2 4
출력 예시 1
21:40
입력 예시 2
5 5 5 5
출력 예시 2
-1
입력
- 회중시계에 표시되는 숫자들은 정렬되지 않은 4가지의 0부터 9까지의 정수입니다.
출력
- 4가지의 숫자로 만들 수 있는 가장 큰 시간을 출력하세요.
- 시계에 표시되는 시간은 24시간 기준입니다.
- 시간을 출력할 수 없는 경우라면 -1을 출력하세요.
소스 코드
Max = -1
def ham(arr, c, che, re):
if c == len(re):
if int(re[0]) > 2:
return
if int(re[0]) == 2 and int(re[1]) > 3:
return
if int(re[2]) > 5:
return
global Max
Max = max(Max,int(''.join(re)))
return
for i in range(len(arr)):
if che[i]:
continue
re[c] = arr[i]
che[i] = True
ham(arr, c+1, che, re)
che[i] = False
arr = list(input().split())
che = [False for i in range(4)]
re = [0 for i in range(4)]
ham(arr,0,che,re)
if Max == -1 :
print(-1)
else:
print(str(Max)[:2]+":"+str(Max)[2:])
'Algorithm > Elice' 카테고리의 다른 글
(Elice / 반복문 / C++) 목표량 (0) | 2022.10.14 |
---|---|
(Elice / 수학 / Java) 방 탈출 (1) | 2022.10.14 |
(Elice / 수학 / Python) 버스 (1) | 2022.10.14 |
(Elice / 시뮬레이션 / Python)엉망진창 다과회 (1) | 2022.10.14 |
(Elice / 수학 / Python)못 하면 될 때까지! (0) | 2022.10.14 |