[BAEKJOON] 2884번

LILO Ghim·2021년 10월 11일
post-thumbnail

알람시계

|정답

h, m = map(int, input().split())
if m >= 45:
    print(h, m-45)
elif m < 45 and h > 0:
    print(h-1, m+15)
else:
    print(23, m+15)

Check!

  1. 제출한 오답이 실행은 되지만 채점에서는 통과가 되지 않았다. 제출할 때부터 안 될거 같은데? 하면서 제출
  2. 정답을 보고 if를 어떻게 쓸지 문제를 읽을 때부터 사고를 구조화(?) 해야 한다는 생각이 직관적으로 들었다
  3. 분(m)은 무조건 계산(값이 변경)을 해야하므로, 시간((h)을 그대로 출력해도 되는 경우(값 유지)와 그렇지 않은 경우 -> 조건1)과 조건2)로 나눠지는 경우(조건에 따른 값의 변경)로 생각을 하면 되었다!

|오답 1

x, y = map(int, input().split())
a = x - 1
b = y + 15
if b >= 60 and a >= 0:
    a = x
    b = 0
elif a < 0:
    a = 23
print(a, b)
-> 알람 설정(-45분)을 처음부터 시간과 분 각각의 변수에 저장하고 if 함수를 적용함. 첫 번째 오답에서 처음 변수를 저장하지 않고 생각을 조금 더 했으면 되었음. 실행은 되지만 통과가 안됨

|오답 2

h, m = map(int, input().split())
time = ((h * 60) + m - 45)
if h > 0:
    h = time // 60
    m = time % 60
else:
    h = ((24 * 60) + m - 45) // 60
    m = ((24 * 60) + m - 45) % 60
print(h, m)
-> 1) iuput으로 받은 시간과 분을 분으로 변환한 값에 알람 설정(-45분) 계산 후 변수(time)에 저장, 다시 시간과 분으로 변환하는 방법을 생각함 2) 시간을 자정과 아닌 경우로 조건을 나눔 : 역시 실행은 되지만 왜 통과가 안될까,,,?
profile
킴릴로

0개의 댓글