몽-구
몽구의 우당탕탕 개발 공부
몽-구
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • PS (38)
      • 백준 (24)
      • 프로그래머스 (14)
    • Dev (58)
      • Kotlin (0)
      • Java (4)
      • Spring, SpringBoot (1)
      • C (8)
      • Python (10)
      • Dart (1)
      • 알고리즘 (7)
      • 자료구조 (3)
      • Git (1)
      • Linux (2)
      • VS Code (1)
      • 환경 설정 (8)
      • Conference (1)
      • 42Seoul (3)
      • Node.js (1)
      • ShellScript (1)
      • IntelliJ (0)
      • MacOS (2)
      • 기타 (3)
    • CS (1)
      • 데이터베이스 (1)
    • DS (4)
      • Coursera (4)
    • 리뷰 (1)
      • 제품 리뷰 (1)
    • 일상 (3)
      • 자동화 (1)
      • 목표 및 계획 (2)
      • 회고 (0)
    • 삶에 대한 태도 (1)
      • 유튜브를 보며 (1)

블로그 메뉴

  • GitHub

인기 글

반응형

태그

  • 알고리즘
  • Python
  • Algorithm
  • 리눅스
  • 프로그래머스
  • 백준
  • 정렬
  • 파이썬
  • BOJ
  • 백준온라인저지
  • c언어
  • 코딩테스트
  • Linux
  • 백준알고리즘
  • sort

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
몽-구

몽구의 우당탕탕 개발 공부

[백준 알고리즘][파이썬/Python] 4344번: 평균은 넘겠지
PS/백준

[백준 알고리즘][파이썬/Python] 4344번: 평균은 넘겠지

2020. 3. 29. 12:30
반응형

문제

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

 

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

출력

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

 

입출력 예

 

제출 코드

import sys
n = int(input())
for i in range(n):
    lst = list(map(int, sys.stdin.readline().strip().split()))
    avg = sum(lst[1:])/lst[0]
    cnt = 0
    for score in lst[1:]:
        if score > avg:
            cnt += 1
    print('%.3f%%' % (cnt/lst[0]*100))

(1) line 4

입력값을 input().split()로 받지 않은 것은 N값이 학생 수가 1,000명까지 늘어날 수 있다는 입력 조건 때문이다. 입력의 개수가 너무 많아질 경우, 모듈 sys를 이용하여 readline을 활용하는 것이 더욱 효율적이다. 물론 1,000개 정도면 input()으로도 충분히 받아도 되긴 한다.

 

(2) line 5 ~ 9

학생들의 평균을 구하고, 평균을 넘는 학생의 수를 세기 위해 cnt를 선언해준다. 이후 학생의 수를 의미하는 lst[0]을 제외한 lst[1:]을 대상으로 각 점수를 순회하며 평균 점수보다 높은 점수일 경우 cnt를 1씩 증가시킨다.

 

(3) line 10

정답 비율이 낮은 편이라 도전 정신을 가지고 풀었는데, 난이도가 너무 쉬웠었다. 아마 이 부분이 정답 비율을 깎은 주요 원인이지 않을까 싶다. 항상 출력 조건을 잘 확인하자. 소수점 셋째 자리까지 출력해야 하므로 '%.3f'를 써줘야 하며, 문자열 내에 %를 쓰고 싶다면 %%를 써야 한다는 것을 잊지 말자.

 

 

 

Source : https://www.acmicpc.net/problem/4344

반응형
저작자표시 (새창열림)

'PS > 백준' 카테고리의 다른 글

[백준 알고리즘][파이썬/Python] 1712번: 손익분기점  (0) 2020.04.01
[백준 알고리즘][파이썬/Python] 2941번: 크로아티아 알파벳  (0) 2020.03.31
[백준 알고리즘][파이썬/Python] 1065번: 한수  (0) 2020.03.30
[백준 알고리즘][파이썬/Python] 1157번: 단어 공부  (0) 2020.03.28
[백준 알고리즘][파이썬/Python] 1152번: 단어의 개수  (0) 2020.03.27
    'PS/백준' 카테고리의 다른 글
    • [백준 알고리즘][파이썬/Python] 2941번: 크로아티아 알파벳
    • [백준 알고리즘][파이썬/Python] 1065번: 한수
    • [백준 알고리즘][파이썬/Python] 1157번: 단어 공부
    • [백준 알고리즘][파이썬/Python] 1152번: 단어의 개수
    몽-구
    몽-구
    소망보단 목표를, 생각보단 실천을

    티스토리툴바