[2단계] 파이썬3으로 백준 단계별로 풀어보기- if문

업데이트:


백준의 저작권 안내에 따라
문제 본문: 링크로 제공
소스 코드: 제가 작성한 소스 코드
백준 아이디: leelee9797
사용 언어: Python 3
외부 에디터: Visual Studio Code

2단계 작성 기간 : 2021년 7월 12일 ~ 2021년 7월 14일

2단계, if문

백준 단계별로 풀어보기 2단계
백준 사이트의 “단계별로 풀어보기” 문제 중 난이도 2단계 문제입니다.
2단계에는 예제가 5개 있습니다.
아래 소제목 이름은
(예제 n단계), (문제 번호), (문제 제목), (알고리즘 분류) 순서입니다.


예제 1단계, 1330번, “두 수 비교하기”, 수학, 구현, 사칙연산

백준 1330번 문제
해결책

A, B = map(int, input().split())

if A>B:
  print(">")
elif A<B:
  print("<")
else:
  print("==")

A가 B보다 크면(if) > 출력
if 조건이 틀리고, A<B이면(elif) < 출력
위 조건 모두 틀리면(else) == 출력

예제 2단계, 9498번, “시험 성적”, 구현

백준 9498번 문제
해결책

Score = int(input())
if Score>=90:
  print("A")
elif Score>=80:
  print("B")
elif Score>=70:
  print("C")
elif Score>=60:
  print("D")
else:
  print("F")

elif문을 여러 번 사용하여 점수 구간에 따라 성적을 출력한다.
Score>=90이면(if) A출력
위의 if 조건에 틀리고(Score<90), Score>=80이면(elif)…80<=Score<90, B출력
위의 조건들 모두 틀리고(Score<80), Score>=70이면(elif)…70<=Score<80, C출력
위의 조건들 모두 틀리고(Score<70), Score>=60이면(elif)…60<=Score<70, D출력
위의 조건들 모두 틀리면(Score<60, else) F 출력

예제 3단계, 2753번, “윤년”, 수학, 구현

백준 2753번 문제
해결책

Year = int(input())
if Year%4==0:
  if Year%100==0:
    if Year%400==0:
      print("1")
    else: 
      print("0")
  else:
    print("1")    
else:
  print("0")

4의 배수가 아니면 평년이므로 0 출력
4의 배수가 맞고, 100의 배수가 아니면 윤년이므로 1 출력
4의 배수가 맞고, 100의 배수이면, 400의 배수인가 확인. 맞으면 윤년이므로 1 출력, 아니면 평년이므로 0 출력

예제 4단계, 14681번, “사분면 고르기”, 수학, 구현,

백준 14681번 문제
해결책

x = int(input())
y = int(input())
if x>0:
  if y>0:
    print("1")
  else:
    print("4")
else:
  if y>0:
    print("2")
  else:
    print("3")

x가 양수일 때(if), 다시 if-else문으로 y양수이면(if) 제1사분면, 아니면(else) 제4사분면
x가 양수가 아닐 때(else), 다시 if-else문으로 y양수이면(if) 제2사분면, 아니면(else) 제3사분면


예제 5단계, 2884번, “알람 시계”, 수학, 사칙연산

백준 2884번 문제
해결책

H, M = map(int, input().split())
if M>=45:
  print(H, M-45)
elif H==0:
  print("23", M+15)
else:
  print(H-1, M+15)

입력 받은 시간(‘시’와 ‘분’)에서 45분 앞당긴 값을 출력해야 한다.
입력 받은 ‘분’이 45 이상이면(if) ‘시’은 그대로, ‘분’에서 45을 빼고 출력.
if의 조건이 false, 즉, 입력 받은 ‘분’이 45 미만이면, ‘시’에서 1을 빼고 분은 +60-45이므로 +15.
그런데 ‘시’가 0일 때는 1을 뺐을 때 23시어야 하므로, 소수의 사례인 이것을 elif문에 넣는다.
정리하면, if의 조건이 false(‘분’<45)이고 ‘시’가 0일 때(elif), 23시, ‘분’+15 출력.
위 조건에 모두 false(‘분’<45이고 ‘시’!=0, else)일 때, ‘시’-1, ‘분’+15 출력.

간단한 조건으로 특정할 수 있는 소수의 사례는 else보다 elif에 넣는 것이 깔끔하다. else에는 조건 넣는 게 아니라, 위의 조건들 모두 false이기 때문.