백준 문제 2단계 조건문 알고리즘 문제를 풀어보도록 하겠습니다.
# 1330 두 수 비교하기
- 정수 A, B를 입력한 후 두 수를 비교하여 출력하는 문제입니다.
A, B = map(int, input().split())
if A > B:
print('>')
elif A < B:
print('<')
else:
print('==')
정수 A와 B는 input() 함수로 입력값을 받은 후에 split() 함수를 사용해 공백을 기준으로 구분하여 map() 함수를 사용해서 int형을 부여했습니다.
이후 조건문을 사용하여 A가 B보다 크면 '>' 출력, A가 B보다 작으면 '<' 출력, 그게 아닌 경우엔 '=='를 출력합니다.
기본적인 조건문 문제이기에 한 번에 맞췄습니다.
# 9498 시험 성적
- 시험 점수를 바탕으로 등급을 출력하는 문제입니다.
grade = int(input())
if 90 <= grade <= 100:
print('A')
elif grade >= 80:
print('B')
elif grade >= 70:
print('C')
elif grade >= 60:
print('D')
else:
print('F')
입력값을 정수형으로 바꾼 뒤 grade 변수에 저장했습니다.
grade 변수를 바탕으로 조건문을 사용하여 A ~ F 까지 등급을 부여하였습니다.
조건문을 처음 배울 때 연습했던 문제여서 한 번에 맞췄습니다.
# 2753 윤년
- 연도를 바탕으로 윤년이면 1, 아니면 0을 출력하는 문제입니다.
year = int(input())
if year % 4 == 0 and year % 100 != 0: # 연도가 4 또는 100으로 나눈 후 나머지가 0일 때
print(1)
elif year % 400 == 0: # 400으로 나눈 후 나머지가 0일 때
print(1)
else:
print(0)
year 변수에 정수형 입력값을 저장합니다.
이후 4와 100으로 나눈 나머지가 0인 경우 1을 출력, 400으로 나눈 나머지가 0인 경우도 1을 출력, 그 외엔 0을 출력하게 했습니다.
이번 문제도 한 번에 맞추었습니다.
# 14681 사분면 고르기
- 정수 2개를 바탕으로 어느 사분면에 위치하는지 출력하는 문제입니다.
a = int(input())
b = int(input())
if a > 0 and b > 0:
print(1)
elif a < 0 and b > 0:
print(2)
elif a < 0 and b < 0:
print(3)
elif a > 0 and b < 0:
print(4)
정수 a, b를 바탕으로 a, b 가 0보다 큰 지 작은 지에 따라 1, 2, 3, 4를 출력하도록 조건을 만들었습니다.
문제는 한 번에 맞췄습니다.
# 2884 알람 시계
- 시와 분을 입력받으면 25분 빠르게 시간을 설정한 후 출력하는 문제입니다.
H, M = map(int, input().split())
if M >= 45: # 45분보다 크거나 같으면
print(H, M-45)
elif M < 45: # 45분보다 작으면
if H == 0: # 시간이 0일 경우
print(23, 60-(45-M))
else:
print(H-1, 60-(45-M))
변수 H, M에 시와 분을 입력받은 후 M을 기준으로 조건문을 작성했습니다.
처음 틀렸을 땐 시간과, 분이 0인 경우를 생각하지 않아 틀렸습니다.
# 2525 오븐 시계
- 시와 분을 입력받은 후 요리하는 데 필요한 시간을 더한 후 출력하는 문제입니다.
A, B = map(int, input().split()) # 현재 시간
C = int(input()) # 요리하는 시간
if B+C < 60:
print(A, B+C)
elif B+C // 60 > 0:
A += ((B+C) // 60)
B = ((B+C) % 60)
if A == 24:
A = 0
elif A > 24:
A = A-24
print(A, B)
처음 조건을 현재 분과 요리하는 시간을 바탕으로 조건문을 만들고 시가 24시인 경우나 24시 이상이 될 때 조건을 추가했습니다.
무려 5번이나 틀렸습니다.
처음에 시를 바탕으로 접근했다가 답을 찾기 못해서 분을 바탕으로 다시 접근했습니다.
시간이 24시를 넘어가는 경우도 생각하지 못했었네요.
제가 얼마 안되는 풀었던 문제들 중 가장 어려웠던 것 같습니다.
# 2480 주사위 세 개
- 주사위 세 개를 바탕으로 값이 어떤 지에 따라 받는 상금을 출력하는 문제입니다.
A, B, C = map(int, input().split())
if A == B == C: # 주사위 숫자 3개가 같은 경우
print(10000 + (A * 1000))
elif A == B or B == C: # 주사위 숫자 2개가 같은 경우
print(1000 + (B * 100))
elif A == C or B == C: # 주사위 숫자 2개가 같은 경우
print(1000 + (C * 100))
elif A == B or A == C: # 주사위 숫자 2개가 같은 경우
print(1000 + (C * 100))
else:
print(max(A, B, C) * 100)
주사위의 숫자가 3개 같은 경우와 2개 같은 경우를 바탕으로 조건문을 만들었습니다.
이번 문제는 한 번에 맞췄습니다.
지금까지 2단계 조건문에 있는 7문제를 풀어봤습니다.
제가 정답을 맞추는 과정을 기록하는 글입니다.