[Python] 백준(Baekjoon) 문제풀이 - 조건문(1)

jae.y·2022년 9월 29일
1

📝 문제

  • 문제는 Baekjoon에 등록되어 있음
  • 문제는 조건문(if문)과 관련 됨

📍 1330번 문제 - 두 수 비교하기

  • 문제
    : 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

  • 입력
    : 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다.

  • 출력
    : 첫째 줄에 다음 세 가지 중 하나를 출력한다.
    • A가 B보다 큰 경우에는 '>'를 출력한다.
    • A가 B보다 작은 경우에는 '<'를 출력한다.
    • A와 B가 같은 경우에는 '=='를 출력한다.

  • 제한
    : -10,000 ≤ A, B ≤ 10,000

💡 문제 해결법 구조화

💡 문제 풀이

# 입력 값을 a, b로 나눠줌
a, b = map(int, input().split())

# 범위 제한, 비교연산자 출력 조건문 
if (-10000 <= a <= 10000) and (-10000 <= b <= 10000):   
    
    if a == b:
        print('==')
    elif a > b:
        print('>')
    else:
        print('<')        
else:
    pass # 결과 안 나오게 설정

👩🏻‍💻 코드 실행

1. 범위 제한 되어있는지 확인

  • 범위 벗어나면 아무것도 출력되지 않게 pass 문 사용

2. 비교연산자 출력 확인

  • ==

  • >

  • <

   문제 1330번. 두 수 비교하기


📍 9498번 문제 - 시험 성적

  • 문제
    : 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

  • 입력
    : 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

  • 출력
    : 시험 성적을 출력한다.

💡 문제 해결법 구조화

💡 문제 풀이

score = int(input())

if 0 <= score <= 100:
    
    # 성적 출력
    if 90 <= score <= 100:
        print('A')
    elif 80 <= score <= 89:
        print('B')
    elif 70 <= score <= 79:
        print('C')
    elif 60 <= score <= 69:
        print('D')
    else:
        print('F')
        
else:
    pass

👩🏻‍💻 코드 실행

1. 범위 제한 되어있는지 확인

  • 범위 벗어나면 아무것도 출력되지 않게 pass 문 사용

2. 시험 성적 출력 확인

  • if문 에 시험 점수가 높은 순부터 입력함

👩🏻‍💻 코드 적용

  • 실생활에 적용해 보기
# 기사 시험 성적
score = int(input("시험 성적을 입력해 주세요 : "))

# 기사 시험 합격 불합격 공지
if 0 <= score <= 100:
    
    # 성적 출력
    if score >= 60:
        print(f'{score}점으로 합격하셨습니다.')
    else:
        print(f'{score}점으로 불합격하셨습니다.')        

else:
    print("옳지 않은 값을 입력하셨습니다.")

   문제 9498번. 시험 성적


📍 2753번 문제 - 윤년

  • 문제
    • 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
    • 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
    • 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

  • 입력
    : 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.

  • 출력
    : 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.

💡 문제 해결법 구조화

💡 문제 풀이

year = int(input())

if 1 <= year <= 4000:

    if ((year % 4 == 0) and (year % 100 != 0)) or (year % 400 == 0):
        print('1')
    else:
        print('0')

👩🏻‍💻 코드 실행

1. 범위 제한 되어있는지 확인

  • 범위 벗어나면 아무것도 출력되지 않음

2. 결과 출력

  • 윤년인 경우

  • 윤년이 아닌 경우

   문제 2753번. 윤년


🧨 어려웠던 내용

윤년 문제를 풀 때, 어떻게 코드를 작성하면 간결하게, 보기 쉽게 적을 수 있을 까 고민을 많이 했다.
여러줄 풀어서 작성할 수 있지만 간결하게! 작성하고 싶어서 고민을 많이 했었다.
조건문을 깔끔하게! 사용할 수 있도록 연습을 많이 해봐야겠다 :)

🤔 느낀점

배울 것이 참... 많다.

📄 참고문헌

참고 1. 윤년 - 위키백과

profile
데이터 분린이 :)

0개의 댓글