Python - 실습 1 - 백준 알고리즘

Updated:

백준 알고리즘 실습 1 파이썬 풀이입니다.

10039번 평균 점수


문제


상현이가 가르치는 아이폰 앱 개발 수업의 수강생은 원섭, 세희, 상근, 숭, 강수이다.

어제 이 수업의 기말고사가 있었고, 상현이는 지금 학생들의 기말고사 시험지를 채점하고 있다. 기말고사 점수가 40점 이상인 학생들은 그 점수 그대로 자신의 성적이 된다. 하지만, 40점 미만인 학생들은 보충학습을 듣는 조건을 수락하면 40점을 받게 된다. 보충학습은 거부할 수 없기 때문에, 40점 미만인 학생들은 항상 40점을 받게 된다.

학생 5명의 점수가 주어졌을 때, 평균 점수를 구하는 프로그램을 작성하시오.

입력

입력은 총 5줄로 이루어져 있고, 원섭이의 점수, 세희의 점수, 상근이의 점수, 숭이의 점수, 강수의 점수가 순서대로 주어진다.
점수는 모두 0점 이상, 100점 이하인 5의 배수이다. 따라서, 평균 점수는 항상 정수이다.

10
65
100
30
95

출력

첫째 줄에 학생 5명의 평균 점수를 출력한다.

68

정답

sum = 0
for i in range(5):
    A = int(input(''))
    if A < 40:
        sum = sum + 40
    else:
        sum = sum + A
print(sum//5)

5543번 상근날드


문제


상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.

햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.

햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.

입력

입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.

800
700
900
198
330

출력

첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.

848

정답

min1 = 2001
min2 = 2001

for i in range(5):
    A = int(input(''))
    if i < 3:
        if min1 > A:
            min1 = A
    else:
        if min2 > A:
            min2 = A

print(min1 + min2 - 50)

10817번 세 수


문제


세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)

20 30 10

출력

두 번째로 큰 정수를 출력한다.

20

정답

List = list(map(int,input().split()))
List.sort()
print(List[1])

2523번 별 찍기 -13


문제


예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

3

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

*
**
***
**
*

정답

N = int(input())

for i in range(1,2*N):
    if(i<=N):
        print('*'*i)
    else:
        j = 2*N-i
        print('*'*j)


2446번 별 찍기 -9


문제


예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

5

출력

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

*********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

정답

N = int(input(''))

for i in range(0,N):
    j = 2*N-1-2*i
    print(' '*i+'*'*j)

for i in range(1,N):
    j = (2*N-1- 2*i)//2
    print(' '*j+'*'*(2*i+1))

2446번 별 찍기 -21


문제


예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

2
3
4

출력

첫째 줄부터 차례대로 별을 출력한다.

*
 *
*
 *
* *
 *
* *
 *
* *
 *
* *
 * *
* *
 * *
* *
 * *
* *
 * *

정답

N = int(input(''))

if(N%2 ==0):
    a = N//2
    b = N//2
else:
    a = N//2 +1
    b = N//2

for i in range(0,N):
    print('* '*a)
    print(' *'*b)

Leave a comment