© 2025 anveloper.dev
GitHub·LinkedIn·Contact

목차

  • 문제
  • 입력
  • 출력
  • 예제
  • 풀이
  • 코드
  • 복잡도
풀이 목록으로 돌아가기

BOJ 1440 - 타임머신

2024-05-14
BOJ
브론즈 II
python
원본 문제 보기
구현
브루트포스

문제

BOJ 1440 - 타임머신

콜론으로 구분된 세 수가 주어질 때, 이를 재배열하여 유효한 시각(HH:MM:SS, 12시간제)을 만들 수 있는 경우의 수를 구하라.

입력

첫째 줄에 콜론으로 구분된 세 정수가 주어진다.

출력

유효한 시각의 경우의 수를 출력한다.

예제

입력출력
3:2:16

풀이

세 수의 모든 순열(최대 6가지)을 생성하여, 시(112), 분(059), 초(0~59) 범위를 만족하는 조합을 세면 된다.

  1. 입력을 콜론으로 분리하여 세 수를 얻는다
  2. 3중 반복문으로 세 수의 모든 순열(i, j, k가 모두 다른 경우)을 생성한다
  3. 각 순열에서 첫 수가 112, 나머지가 059 범위인지 확인한다
  4. 조건을 만족하는 순열 수를 카운트한다

핵심 아이디어: 세 수의 순열은 최대 6가지뿐이므로 모두 확인해도 O(1)이다.

코드

t_machine = list(map(int, input().split(':')))
hour = [h for h in range(1, 13)]
min_sec = [ms for ms in range(60)]
 
result = 0
 
for i in range(3) :
    for j in range(3) :
        for k in range(3) :
            if i != j and j != k and k != i :
                if t_machine[i] in hour and t_machine[j] in min_sec and t_machine[k] in min_sec :
                    result += 1
 
print(result)

복잡도

  • 시간: O(1)
  • 공간: O(1)