problem-solving/Python

Ch2. 조건문 (Baekjoon)

c0dingcat 2024. 12. 27. 23:07

 

표준 입출력 이용 시 항상 이용
import sys

input = sys.stdin.readline

 

# 1330 - 두 수 비교
a, b = map(int, input().split())

if a > b: 
    print(">")
elif a < b:
    print("<")
else:
    print("==")
  • 줄바꿈과 들여 쓰기로 타 프로그래밍 언어의 중괄호 역할({ }) 대체
  • if 조건: 해당 if문 조건에 부합하면 if문 내부 출력
  • elif 조건: if문에 부합하지 않고, elif문의 조건에 부합하면 내부 출력
  • else: if와 elif의 모두의 조건이 부합하지 않을 경우 내부 출력

 

# 9498 - 시험 성적
a = int(input())

if a >= 90:
    print("A")
elif a >= 80:
    print("B")
elif a >= 70:
    print("C")
elif a >= 60:
    print("D")
else:
    print("F")
  • Java의 &&, | | 와 달리 and, or로 입력 ==은 동일
  • if-elif-else 연속으로 갈 경우, 큰 값은 윗 조건에서 걸러지기 때문에 작은 값만 조건에서 걸러주면 된다. 
if a <= 90:
	print("A")
elif a < 90 and a >= 80: # 위와 동일
	print("B")

 

 

# 2753 - 윤년
a = int(input())

print(int((a % 4 == 0 and a % 100 != 0) or (a % 400 == 0)))
  • 윤년 구하기
    • 4의 배수 + 100의 배수가 아닐 때
    • 400의 배수일 때
  • 문제에서 윤년이면 1, 윤년이 아니면 0을 출력하면 되기에 print문 내부에 작성 -> 연산식이 맞으면 1(true) 틀리면 0(false) 출력

 

# 14681 - 사분면 고르기
x, y = [int(input()) for _ in range(2)]

if x > 0 and y > 0:
    print(1)
elif x < 0 and y > 0:
    print(2)
elif x < 0 and y < 0:
    print(3)
else:
    print(4)

 

 

# 2884 - 알람 시계
h, m = map(int, input().split())

if m >= 45: # m(분)이 45보다 큰 경우
    print(h, m - 45)

else: # m(분)이 45보다 작은 경우
    total_min = (h * 60 + m) - 45 # 총 분을 구하고 환산
    h = (total_min // 60) % 24 
    m = total_min % 60

    print(h, m)

 

h, m = map(int, input().split())

if m >= 45:
    print(h, m - 45)

else: # 45보다 작은 경우
    if h == 0:
        h = 23
        print(h, m + 15)

    else:
        print(h - 1, m + 15)
  • 시간 차이가 1시간 이하로 내려가지 않기 때문에 h가 0시인 경우만 처리해 줘도 된다.

 

# 2525 - 오븐 시계
h, m = map(int, input().split()) # 현재 시간과 분 입력
c = int(input()) # 조리 시간 입력

if m + c < 60: # 분과 조리시간이 1시간 이하일 경우
    print(h, m + c)

else:
    total_min = h * 60 + m + c

    h = (total_min // 60) % 24 # 나머지 연산자로 24를 계산하면 23시에서 0시로 넘어감
    m = total_min % 60

    print(h, m)

 

 

# 2480 - 주사위 세개
a, b, c = map(int, input().split())

# 세 수가 같은 경우
if a == b == c: 
    print(10000 + (a * 1000))

# 두 수가 같은 경우
elif a == b or b == c or a == c: 

    if a == b or a == c:
        same = a

    if b == c:
        same = b

    print(1000 + (100 * same))

else: # 모든 수가 다를 경우
    maximum = a

    if maximum < b:
        maximum = b

    if maximum < c:
        maximum = c

    print(maximum * 100)

 

else: # 모든 수가 다를 경우
    print(max(a, b, c) * 100)
  • 간단히 max 함수를 이용해도 좋다.

'problem-solving > Python' 카테고리의 다른 글

Ch3. 반복문 (Baekjoon)  (1) 2024.12.27
Ch1. 입출력 & 사칙연산 (Baekjoon)  (3) 2024.12.27