[백준/Python] 1546번: 평균

2026. 1. 14. 20:22·Algorithm/Python

1. 문제 분석

  • 핵심: 주어진 점수 중 최댓값(M)을 찾고, 모든 점수를 점수/M*100으로 변환한 뒤 새로운 평균 구하기.
  • 제한 사항: 과목 수 N은 1000 이하, 점수는 100 이하의 정수

2. 접근 방식

  1. 점수를 1차원 리스트에 저장합니다.
  2. 최대값을 구합니다.
  3. 한 과목씩 새 방법으로 점수를 구하고 평균을 구합니다.

3. 내 풀이 (Code)

N=int(input())
scores=list(map(int,input().split()))
M=max(scores)
new_scores=[]
for i in range(len(scores)):
    new_scores.append(scores[i]/M*100)
    
print(sum(new_scores)/N)

4. 코드 리뷰 및 학습 포인트

✅ 더 효율적인 풀이

반복문 대신 파이썬의 map()과 내장 sum() 함수를 사용하면 단 한 줄로도 해결할 수 있습니다.

import sys

N = int(sys.stdin.readline())
scores = list(map(int, sys.stdin.readline().split()))

# 새로운 리스트 생성 없이 한 번에 계산
print(sum(scores) * 100 / max(scores) / N)

✅ 시간 복잡도

  • 숫자의 개수가 N일 때, 리스트를 한 번 순회하므로 시간 복잡도는 O(N)입니다.
  • N이 최대 1000으로 작기 때문에 어떤 방식이든 효율적으로 통과합니다.

'Algorithm > Python' 카테고리의 다른 글

[백준/Python] 11659번: 구간 합 구하기 4  (0) 2026.01.14
[백준/Python] 11720번: 숫자의 합  (0) 2026.01.14
'Algorithm/Python' 카테고리의 다른 글
  • [백준/Python] 11659번: 구간 합 구하기 4
  • [백준/Python] 11720번: 숫자의 합
TECHNING
TECHNING
Hi! I'm techning
  • TECHNING
    TECHNING
    TECHNING
    • 분류 전체보기 (54)
      • Computer Science (45)
        • Design Pattern (11)
        • Programming Paradigm (4)
        • Network (15)
        • Operating System (6)
        • Database (6)
        • Data Structure (3)
      • Algorithm (5)
        • Python (3)
        • Java (1)
      • IT Insight (4)
  • hELLO· Designed By정상우.v4.10.4
TECHNING
[백준/Python] 1546번: 평균
상단으로

티스토리툴바