Python/Baekjoon

[Python / Baekjoon] 2단계 조건문 알고리즘 문제 풀이 (1330, 9498, 2753, 14681, 2884, 2525, 2480)

Sukyung Jang 2023. 4. 15. 22:51

 

백준 문제 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문제를 풀어봤습니다.

제가 정답을 맞추는 과정을 기록하는 글입니다.