solved.ac
알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.
solved.ac
- 이번에는 Class1의 다른 문제들을 살펴보고자 합니다. 참고로 Class1에는 총 36개의 문제가 수록되어 있고, 때문에 Class1은 4개의 포스팅으로 이루어질 예정입니다.
- 문제를 하나씩 살펴보겠습니다. Class1의 문제들은 파이썬의 기본적인 문법만 익히고 있다면 충분히 스스로 해결할 수 있습니다!
2753번 : 윤년
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
- 주어진 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 윤년임을 파악하며 1 또는 0을 출력하는 문제입니다.
- 함수의 return 값이나 print문 안에서도 if-else문을 사용할 수 있습니다.
def is_leap_year(year):
return (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
if __name__ == '__main__':
year = int(input())
print(1 if is_leap_year(year) else 0)
9498번 : 시험 성적
9498번: 시험 성적
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- 조건문을 연습해보는 문제입니다. if-else문의 사용법만 알고 있다면 풀 수 있습니다.
def get_grade(score):
if 90 <= score <= 100:
return 'A'
elif 80 <= score < 90:
return 'B'
elif 70 <= score < 80:
return 'C'
elif 60 <= score < 70:
return 'D'
else:
return 'F'
if __name__ == '__main__':
N = int(input())
print(get_grade(N))
10171번 : 고양이
10171번: 고양이
아래 예제와 같이 고양이를 출력하시오.
www.acmicpc.net
- 단순 출력 문제입니다. \ 기호 출력에 유의하면서 코드를 작성하면 됩니다.
def print_cat():
print("\\ /\\")
print(" ) ( ')")
print("( / )")
print(" \\(__)|")
if __name__ == '__main__':
print_cat()
10172번 : 개
10172번: 개
문제 아래 예제와 같이 개를 출력하시오. 입력 출력 예제 입력 1 복사 예제 출력 1 복사 |\_/| |q p| /} ( 0 )"""\ |"^"` | ||_/=\\__|...
www.acmicpc.net
- 이전 문제와 유사하게 출력만 해주면 되는 문제입니다. 이번에는 \와 "를 유의하며 출력해주시면 됩니다.
def print_dog():
print("|\_/|")
print("|q p| /}")
print("( 0 )\"\"\"\\")
print("|\"^\"` |")
print("||_/=\\\__|")
if __name__ == '__main__':
print_dog()
10869번 : 사칙연산
10869번: 사칙연산
두 자연수 A와 B가 주어진다. 이때, A+B, A-B, A*B, A/B(몫), A%B(나머지)를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- 두 자연수를 입력으로 받고 +, -, * 등의 결과를 출력해주는 코드로 풀어볼 수 있습니다.
def perform_operations(x, y):
print(x + y)
print(x - y)
print(x * y)
print(x // y)
print(x % y)
if __name__ == '__main__':
A, B = map(int, input().split())
perform_operations(A, B)
10871번 : X보다 작은 수
10871번: X보다 작은 수
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
www.acmicpc.net
- 수열 A와 X 값이 주어지고 수열 내에서 X보다 작은 값들을 출력하는 문제입니다.
- 저는 리스트 컴프리헨션을 이용해서 filter_less_than_x(N, X, numbers) 함수를 구현하였습니다. 리스트 컴프리헨션에 대한 내용은 추후 관련 포스팅을 작성하겠습니다.
- print문에 인자값으로 *arr(arr: 배열)를 주게 되면 배열 내 원소들을 분리하여 쭉 출력해줍니다.
def filter_less_than_x(N, X, numbers):
return [num for num in numbers if num < X]
if __name__ == '__main__':
N, X = map(int, input().split())
numbers = list(map(int, input().split()))
result = filter_less_than_x(N, X, numbers)
print(*result)
10950번 : A+B - 3
10950번: A+B - 3
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- Test Case만큼 A와 B를 입력받아 A+B를 출력하는 문제입니다.
def calculate_sum(a, b):
return a + b
if __name__ == '__main__':
T = int(input())
for _ in range(T):
a, b = map(int, input().split())
print(calculate_sum(a, b))
10951번 : A+B - 4
10951번: A+B - 4
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- 위 문제와 유사한 문제지만, 무한 반복문을 통해 계속 입력을 받는 형태입니다.
- 입력을 계속 받다가 EOFError가 발생할 때 실행을 중단하는 코드로 해결할 수 있습니다. EOFError는 입력값이 주어지지 않을 때 발생하는 오류입니다.
def calculate_sum(a, b):
return a + b
if __name__ == '__main__':
while True:
try:
A, B = map(int, input().split())
print(calculate_sum(A, B))
except EOFError:
break
10952번 : A+B - 5
10952번: A+B - 5
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
- 위 문제들과 매우 유사합니다. 단지 마지막 입력이 A=0, B=0일 때 종료되는 조건만 추가해주었을 뿐입니다.
def calculate_sum(a, b):
return a + b
if __name__ == '__main__':
while True:
A, B = map(int, input().split())
if A == 0 and B == 0:
break
print(calculate_sum(A, B))
'알고리즘 문제 > Class (solved.ac)' 카테고리의 다른 글
Class 2 (Hashing ~ 부녀회장이 될테야) (1) | 2023.12.15 |
---|---|
Class 2 (직각삼각형 ~ 블랙잭) (0) | 2023.12.06 |
Class 1 (최소, 최대 ~ 단어 공부) (4) | 2023.12.01 |
Class 1 (A x B ~ ACM 호텔) (1) | 2023.11.28 |
Class 1 (A+B ~ N 찍기) (2) | 2023.11.21 |