λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

μ½”λ”© ν…ŒμŠ€νŠΈ/Baejoon

[λ°±μ€€] 4244번 - 평균은 λ„˜κ² μ§€

πŸ“– λ¬Έμ œ

λŒ€ν•™μƒ μƒˆλ‚΄κΈ°λ“€μ˜ 90%λŠ” μžμ‹ μ΄ λ°˜μ—μ„œ 평균은 λ„˜λŠ”λ‹€κ³  μƒκ°ν•œλ‹€. 당신은 κ·Έλ“€μ—κ²Œ μŠ¬ν”ˆ 진싀을 μ•Œλ €μ€˜μ•Όν•œλ‹€.

πŸ‘€ μΆœμ œμ˜λ„

μž…λ ₯받은 리슀트λ₯Ό μŠ¬λΌμ΄μ‹±μ„ μ΄μš©ν•˜μ—¬ 평균을 ꡬ할 수 μžˆλŠ”μ§€

🧾 μ½”λ“œ

n = int(input())

for _ in range(n):
# split() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μž…λ ₯ 받은 값을 곡백 κΈ°μ€€μœΌλ‘œ number에 μ €μž₯ ν›„ map() ν•¨μˆ˜λ₯Ό μ΄μš©ν•˜μ—¬ int둜 λ³€ν™˜
    number = list(map(int, input().split()))
# number[0]은 학생 수, number[1: ]은 ν•™μƒμ˜ μ μˆ˜κ°€ μ €μž₯λ˜μ–΄ μžˆμœΌλ―€λ‘œ μŠ¬λΌμ΄μ‹±μ„ μ΄μš©ν•˜μ—¬ 평균을 ꡬ함
    avg = sum(number[1:])/number[0] 
    count = 0
    for score in number[1:]: # μž…λ ₯ν•œ 점수의 수만큼 반볡
        if score > avg: # μ μˆ˜κ°€ 평균보닀 높을 경우
            count += 1 # 평균 이상인 ν•™μƒμ˜ 수λ₯Ό count에 1μ”© λ”ν•΄μ€Œ
    rate = count/number[0] * 100 # 학생 λΉ„μœ¨ κ΅¬ν•˜κΈ°
    print(f'{rate:.3f}%') # μ†Œμˆ˜μ  μ…‹μ§Έ μžλ¦¬κΉŒμ§€ 좜λ ₯

πŸ’» 풀이섀λͺ…

1. ν•™μƒμ˜ μˆ˜μ™€ 점수λ₯Ό μž…λ ₯ν•  개수만큼 for문을 λ°˜λ³΅ν•˜μ—¬ 리슀트둜 ν•™μƒμ˜ μˆ˜μ™€ 점수λ₯Ό μž…λ ₯λ°›λŠ”λ‹€.

2. number[0]μ—λŠ” 학생 수, number[1:]λΆ€ν„° μ μˆ˜κ°€ λ‚˜λˆ„μ–΄ 평균을 κ΅¬ν•œλ‹€.

3. 점수만큼 for문을 λ°˜λ³΅ν•˜μ—¬ 평균 이상인 ν•™μƒμ˜ μˆ˜κ°€ μžˆμ„ μ‹œ count에 1μ”© 더해쀀닀.

4. f-string ν‘œκΈ°λ²•μ„ μ΄μš©ν•˜μ—¬ μ†Œμˆ˜μ  μ…‹μ§Έ μžλ¦¬κΉŒμ§€ 좜λ ₯ν•œλ‹€.

πŸ“ ν•™μŠ΅λ°©λ²•

  • 리슀트의 객체λ₯Ό λ‚˜λˆ„μ–΄ κ³„μ‚°ν•˜λŠ” 방법을 μœ„μ£Όλ‘œ ν•™μŠ΅ν•œλ‹€.
  • 리슀트의 객체λ₯Ό κ°€μ Έμ˜€κ³  ν‘œκΈ°ν•  수 μžˆλŠ” 인덱싱과 μŠ¬λΌμ΄μ‹±μ„ ν•™μŠ΅ν•œλ‹€.
  • 파이썬의 λ‚΄μž₯ 객체의 μ’…λ₯˜μ™€ μ‚¬μš©λ°©λ²•λ₯Ό ν•™μŠ΅ν•œλ‹€.