[BOJ] 8989 시계
Post
취소

[BOJ] 8989 시계

문제 요약 및 풀이

8989번: 시계

되게 간단한 실버 문제.

  1. 각 시각에 따른 시침, 분침의 각도를 알아낸다.
  2. 사이각을 구한다(이때 각도가 2개다. 따라서 이 중에서 최소를 선택한다.)
  3. 이 사이각에 따라 정렬하고, 답을 도출한다.

풀이 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for i in range(int(input())):
  L = input().split() # 입력

  D = [] # 정렬을 위한 리스트

  for t in L: 
    h,m = map(int, t.split(':')) # h: 시간, m: 분
    a = ((h % 12) * 30 + m / 2) % 360 # 시침의 각도
    b = m * 6 # 분침의 각도

    deg = max(a,b) - min(a,b) # 시침과 분침의 각도

    D.append([min(deg, 360-deg), i]) # 360 - deg 는 반대각
    #  사이각이 같으면 시간이 빠른 순으로 정렬해야 하기 때문에, (각도, 시각) 순으로 아이템을 만든다.

  D.sort() # 정렬한다.
  print(D[2][1]) # 결과 출력

This post is licensed under CC BY 4.0 by the author.