본문 바로가기
Baekjoon

[1차원 배열] 파이썬으로 해결하기

by ★☁︎♣︎♥︎ 2022. 4. 13.
728x90
반응형
안녕하세요! CodingLog의 우동이입니다.
이번 시간에는 파이썬으로 백준 공부하기입니다.

단계 문제 번호 제목 티어
5 1546 평균 Bronze 1
6 8958 OX퀴즈 Bronze 2
7 4344 평균은 넘겠지 Bronze 1

1546.

기말고사를 망친 세준이는 점수를 조작하기로 한다. 자기 점수 중에 최댓값을 M이라고 하면 (모든 점수 / M * 100) / N을 해주면 된다.

시험 본 과목의 개수는 N이고, 모든 점수는 N개의 점수의 합입니다.

# 평균
n = int(input())
data_list = list(map(int,input().split()))
result = sum(data_list)
max_data_list = max(data_list)
print((result / max_data_list * 100) / n)

8958.

OX퀴즈의 결과에서 O가 연속되면 증가하고 X이면 다시 초기화한다.

예를 들면

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

# OX퀴즈
n = int(input())
max_list = int(0)
for i in range(n):
    count=0
    str_data = str(input())
    str_list = list(str_data)
    for j in range(len(str_list)):
        count+=1;
        if str_list[j]=='X':
            count=0;
        else:
            max_list+=count
    print(max_list)
    max_list=0;

4344.

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력하는 문제입니다.

# 평균은 넘겠지
n = int(input())
for i in range(n):
    result = 0
    count = 0
    avg_sum = 0
    m_list = list(map(int,input().split()))
    for j in range(1,m_list[0]+1):
        result += m_list[j]
    result = result / m_list[0]
    for j in range(1,m_list[0]+1):
        if m_list[j] > result:
            count += 1;
    avg_sum = (count / m_list[0]) * 100
    print("{:.3f}%".format(avg_sum))

각 점수의 평균을 구하고 평균을 넘는 학생들의 비율을 출력하면 됩니다.

728x90
반응형

댓글