백준 사이트의 단계별로 풀어보기 (단계별로 풀어보기 (acmicpc.net)) 두번째인 조건문 단계의 문제들입니다.
시간은 0시~23시, 0분~59분 이라는 범위가 존재하여 if 문을 사용해 계산할 수 있습니다.
알고리즘을 풀면서 조건문을 사용할 때 가장 중요한 부분은 발생 가능한 모든 케이스를 다뤄야 한다는 점입니다.
어려운 알고리즘 문제를 풀다보면 내가 생각하지 못한 케이스를 빠트려서 해당 예외 케이스들에서 오답이 나오는 경우가 많습니다.
if 문 작성시에는 항상 차근차근 발생 가능한 모든 케이스를 생각하며 작성하는 습관이 필요합니다.
반응형
2884번 알람 시계
if 조건문만을 사용해 풀 수 있습니다.
조건 문의 경우 if / elif / else 형태로 작성할 수 있고, 타 언어와 다르게 조건문을 괄호로 감싸지 않아도 됩니다.
또한 and, or 조건은 특수문자가 아닌 and, or 로 작성해주면 됩니다.
h, m = map(int, input().split())
if h == 0 and m - 45 < 0: # 0시 (0~44)분
h = 23
m = 60 + (m - 45)
elif m - 45 < 0: # (1~23)시 (0~44)분
h = h - 1
m = 60 + (m - 45)
else: # (0~23)시 (45~59)분
m = m - 45
print(h, m)
2525번 오븐 시계
이 문제도 위와 같이 if 문을 사용해서 풀 수도 있겠지만, 아래처럼 사칙연산 만으로도 해결 가능합니다.
a, b = map(int, input().split())
c = int(input())
# 종료 시
h = (a + (b + c)//60)%24
# 종료 분
m = (b + c)%60
print(h, m)
반응형
'IT > 알고리즘' 카테고리의 다른 글
[알고리즘/파이썬] 백준 10807번 개수 세기, 10810번 공 넣기, 10813번 공 바꾸기 (0) | 2023.06.15 |
---|---|
[알고리즘/파이썬] 백준 2739번 구구단, 25304번 영수증, 25314번 코딩은 체육과목 입니다. (0) | 2023.06.14 |
[알고리즘/파이썬] 백준 10171번 고양이, 10172번 개 (특수문자 출력) (0) | 2023.05.05 |
[알고리즘/파이썬] 백준 10869번 사칙연산 (사칙연산) (0) | 2023.04.26 |
[알고리즘/파이썬] 백준 2557번 Hello World (입출력) (0) | 2023.04.25 |
댓글