[ algorithm ] 백준 단계별 문제 풀이 (조건문)
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준에서 조건문에 관련된 문제들의 풀이를 살펴보려 합니다.
파이썬3 를 사용해 문제 풀이를 진행하겠습니다.
문제마다 링크를 걸어두었으니 문제를 살펴보시고 문제를 푼 다음에 저와
풀이를 비교해 보시는 걸 추천드립니다.
차근차근 풀어봅시다.
백준 BAEKJOON 1330
https://www.acmicpc.net/problem/1330
문제 해석
주어진 두 수를 비교하는 문제
풀이
a, b = map(int, input().split())
if a > b:
print('>')
elif a < b:
print('<')
else:
print("==")
풀이 해석 및 팁
map 함수를 사용해 두 정수로 받아오고 if 조건문을 사용해 크기 비교 후 부등호를 출력
백준 BAEKJOON 9498
https://www.acmicpc.net/problem/9498
문제 해석
0에서 100까지의 정수를 입력받고 범위에 해당하는 점수를 출력하는 문제
풀이
score = int(input()) // 10
if score >= 9:
print('A')
elif score == 8:
print('B')
elif score == 7:
print('C')
elif score == 6:
print('D')
else:
print('F')
풀이 해석 및 팁
if 조건문에서 다중 조건을 검사하기위해 elif를 여러개 사용함
백준 BAEKJOON 2753
https://www.acmicpc.net/problem/2753
문제 해석
윤년의 조건을 문제에서 알려주면 그 조건으로 입력받은 수가 윤년에 해당하는지를 검사하는 문제
풀이
a = int(input())
if ((a % 4 == 0) and (a % 100 != 0)) or (a % 400 == 0):
print('1')
else:
print('0')
풀이 해석 및 팁
and 와 or를 괄호( )로 잘 묶어서 사용
백준 BAEKJOON 14681
https://www.acmicpc.net/problem/14681
문제 해석
주어지는 좌표가 4사분면 중 어느곳에 속하는지를 판별하는 문제
풀이
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가 양수인지 음수인지를 먼저 판별한 뒤에 y의 좌표를 확인해 어느 사분면에 속하는지 판별
백준 BAEKJOON 2884
https://www.acmicpc.net/problem/2884
문제 해석
주어진 시간보다 45분 앞선 시간을 출력하는 문제
풀이
h, m = map(int, input().split())
if m >= 45 :
print("{} {}".format(h, m-45))
else :
if h != 0 :
print("{} {}".format(h-1, m+15))
else :
print("{} {}".format(23, m+15))
풀이 해석 및 팁
주어진 시간에서 분의 값이 45보다 클 경우 시간의 변화는 없기 때문에 바로 출력이 가능하지만
45보다 작을 경우에는 0시일 때와 그렇지 않을 때를 구분하여 시간을 정의해준다.
백준 BAEKJOON 2525
https://www.acmicpc.net/problem/2525
문제 해석
두 줄을 입력받는데 첫 줄에는 현재 시각, 다음줄에는 요리에 걸리는 시각이 입력된다.
요리가 완료되는 시각을 출력해야하기 때문에 현재 시각에 소요 시간을 더해주는 문제
풀이
a, b = map(int, input().split())
c = int(input())
a = a + c // 60
b = b + c % 60
if b >= 60:
b = b - 60
a = a + 1
if a >= 24:
a = a - 24
print("{} {}".format(a, b))
풀이 해석 및 팁
a에는 시간 b에는 분이 입력되는데 요리가 소요되는 시간은 분으로 들어오기때문에
c를 60으로 나눈 몫을 a에 더해주고 c를 60으로 나눈 나머지를 b에 더해주면 요리 완료 시각을 파악할 수 있다.
그 밑에 조건문은 b가 60분을 넘어갈 경우 시간값을 조정해주는 경우와 a가 24를 넘는 경우를 검사하고있다.
백준 BAEKJOON 2480
https://www.acmicpc.net/problem/2480
문제 해석
같은 눈이 3개 나오는 경우와 2개 나오는 경우 그리고 모두 다른 경우를 각각 구분해 상금을 계산하는 문제
풀이
a = input()
prize = 0
count1 = a.count(a[0])
if count1 == 3:
prize += 10000 + int(a[0])*1000
elif count1 == 2:
prize += 1000 + int(a[0])*100
else:
if a.count(a[2]) == 2:
prize += 1000 + int(a[2])*100
else:
prize += max(int(a[0]), int(a[2]), int(a[4])) * 100
print(prize)
풀이 해석 및 팁
a에 3개의 주사위 눈 값을 문자열로 받아오고 count함수를 사용해 같은 눈의 개수를 파악한다.
첫 번째 눈과 같은 개수가 3개 또는 2개 라면 상금 계산이 바로 가능하지만 1개일 경우에는
다른 두 눈의 값이 같은지를 확인한 뒤에 상금 계산을 진행합니다.
여기까지 백준 단계별 문제 중 조건문에 대한 문제 풀이였습니다.
저번시간에는 입출력과 사칙연산 관련 문제를 살펴보았습니다.
[ algorithm ] 백준 단계별 문제 풀이 (입출력과 사칙연산)
오늘 살펴본 문제들도 무지막지하게 어려운 문제는 아니였습니다.
아직까지는 큰 어려움 없이 잘 풀어나가고 있지만 난이도가 올라갈수록 컴퓨터과학에 대한 개념이
필요한 문제들을 마주하게 될 것입니다.
제가 아는 지식을 총 동원해 천천히 설명해드릴테니 천천히 잘 따라와주세요.
문제를 풀다가 어려운 부분이 있거나 도움이 필요하시다면 댓글에 남겨주시면 답변해드리도록 하겠습니다.
새해 복 많이 받으세요. 감사합니다.
'programming > algorithm' 카테고리의 다른 글
[ algorithm ] 백준 단계별 문제 풀이 (1차원 배열 1탄) (0) | 2023.02.14 |
---|---|
[ algorithm ] 백준 단계별 문제 풀이 (반복문 2탄) (0) | 2023.02.10 |
[ algorithm ] 백준 단계별 문제 풀이 (반복문 1탄) (0) | 2023.02.09 |
[ algorithm ] 백준 단계별 문제 풀이 (입출력과 사칙연산) (0) | 2023.01.21 |
[ algorithm ] 알고리즘 문제 풀이 사이트 (1) | 2023.01.04 |