ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 백준 4344 평균은 넘겠지
    Python_알고리즘 2021. 6. 29. 08:37
    문제 바로가기

       문제분석   

    # 두 줄에 걸쳐 입력받은 값을 인덱스와 슬라이싱으로 가져와 평균을 구하고, 구한 평균값을 입력받은 각 학생들의 점수와 비교하는 이중 반복문으로 풀이한다.

     

     

       문제풀이   

    c = int(input())
    
    for _ in range(c):
        nums = list(map(int, input().split()))
        ave = sum(nums[1:])/nums[0]
        count = 0
        for j in nums[1:]:
            if j > ave:
                count += 1
        rate = count/nums[0]*100
        print(f"{rate:.3f}%")

    # 테스트 케이스 수(c)를 입력받고 그 수만큼 반복을 한다.

    # 반복문 안에서 각 테스트 케이스마다 학생수(n)와 n명의 점수를 입력 받는다.

       - split으로 입력받은 값을 공백기준으로 나누고, map을 이용해 숫자로 바꿔서 다시 리스트에 저장한다.

    # 평균을 구하기 위해 위에서 저장한 리스트 중 제일 앞의 학생수를 제외한 점수를 슬라이스를 통해 가져와 더하고, 첫번째 인덱스인 학생수로 나눈다.

    # 평균 이상인 학생수를 카운트 하기 위해 변수를 하나 선언하고 초기화 한다.

    # 그렇게 나온 평균 값에서 평균인 학생을 뽑기 위해 다시 반복문을 돌린다.

       - 각 학생들의 점수를 하나씩 가져와서 위에서 평균으로 구한 값과 비교한다.

       - 평균 이상인 값이 나오면 카운트를 올려 준다.

    # 평균을 넘는 비율을 구하라 했으므로 평균이상 학생수를 학생수로 나눠 100을 곱해준다.


       추가내용   

    # f-string을 이용해 중괄호 안에 {변수: .3f}형식으로 출력하고싶은 변수를 넣어 출력한다.

    # :.3f 을 사용하여 해당변수의 소숫점 셋쨋자리까지 출력한다.

     

    'Python_알고리즘' 카테고리의 다른 글

    [Python] 백준 1157 단어 공부  (0) 2021.07.01
    [Python] 백준 4673 셀프 넘버  (0) 2021.06.29
    [Python] 백준 1110 더하기 사이클  (0) 2021.06.26
    [Python] 백준 2884 알람시계  (0) 2021.06.25
    [Python] 백준 2588 곱셈  (0) 2021.06.24

    댓글

Designed by Tistory.