๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜(BOJ)_1546๋ฒˆ[ํ‰๊ท  ๊ตฌํ•˜๊ธฐ]

by alswlfl 2022. 11. 18.

ํ‰๊ท  ๊ตฌํ•˜๊ธฐ[1546๋ฒˆ]

Q. ์„ธ์ค€์ด๋Š” ๊ธฐ๋ง๊ณ ์‚ฌ๋ฅผ ๋ง์ณค๋‹ค. ์„ธ์ค€์ด๋Š” ์ ์ˆ˜๋ฅผ ์กฐ์ž‘ํ•ด์„œ ์ง‘์— ๊ฐ€์ ธ๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ผ๋‹จ ์„ธ์ค€์ด๋Š” ์ž๊ธฐ ์ ์ˆ˜ ์ค‘์— ์ตœ๋Œ“๊ฐ’์„ ๊ณจ๋ž๋‹ค. ์ด ๊ฐ’์„ M์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋ชจ๋“  ์ ์ˆ˜๋ฅผ ์ ์ˆ˜/M*100์œผ๋กœ ๊ณ ์ณค๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์„ธ์ค€์ด์˜ ์ตœ๊ณ ์ ์ด 70์ด๊ณ , ์ˆ˜ํ•™์ ์ˆ˜๊ฐ€ 50์ด์—ˆ์œผ๋ฉด ์ˆ˜ํ•™์ ์ˆ˜๋Š” 50/70*100์ด ๋˜์–ด 71.43์ ์ด ๋œ๋‹ค.

์„ธ์ค€์ด์˜ ์„ฑ์ ์„ ์œ„์˜ ๋ฐฉ๋ฒ•๋Œ€๋กœ ์ƒˆ๋กœ ๊ณ„์‚ฐํ–ˆ์„ ๋•Œ, ์ƒˆ๋กœ์šด ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์‹œํ—˜ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 1000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋‘˜์งธ ์ค„์— ์„ธ์ค€์ด์˜ ํ˜„์žฌ ์„ฑ์ ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๊ณ , ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๊ฐ’์€ 0๋ณด๋‹ค ํฌ๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ƒˆ๋กœ์šด ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์‹ค์ œ ์ •๋‹ต๊ณผ ์ถœ๋ ฅ๊ฐ’์˜ ์ ˆ๋Œ€์˜ค์ฐจ ๋˜๋Š” ์ƒ๋Œ€์˜ค์ฐจ๊ฐ€ 10-2 ์ดํ•˜์ด๋ฉด ์ •๋‹ต์ด๋‹ค.

์˜ˆ์ œ


๋ฌธ์ œ ๋ถ„์„

์ž…๋ ฅ๋ฐ›์€ N๊ฐœ์˜ ๊ณผ๋ชฉ ์ ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ์ ์ˆ˜๊ฐ€ ๋†’์€ M๊ฐ’ ๊ตฌํ•˜๊ณ , ๋ณ€ํ™˜ ์ ์ˆ˜ ๊ตฌํ•˜๋Š” ์‹[์ ์ˆ˜/M*100]์œผ๋กœ ์ดํ•ฉ์„ ๊ณ„์‚ฐ ํ•œ ํ›„ N๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด ํ‰๊ท ์„ ๊ตฌํ•œ๋‹ค. 

 

โ–  Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ณ€ํ™˜ ์ ์ˆ˜์˜ ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ์‹(์ ์ˆ˜๊ฐ€ A, B, C์ธ ๊ฒฝ์šฐ)
(A/M*100+B/M*100+C/M*100)/3=(A+B+C)*100/M/3

์Šˆ๋„์ฝ”๋“œ ์ž‘์„ฑ

1. ์‹œํ—˜์„ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N ์ž…๋ ฅ๋ฐ›๊ธฐ
2. myList ๋ฆฌ์ŠคํŠธ์— N๊ฐœ์˜ ๊ฐ ๊ณผ๋ชฉ์˜ ์‹œํ—˜ ์„ฑ์  ์ž…๋ ฅ ๋ฐ›๊ธฐ
3. myList์— ์ €์žฅ๋œ ๊ณผ๋ชฉ์˜ ์‹œํ—˜ ์„ฑ์ ๋“ค ์ค‘ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜ M์— ์ €์žฅ

4. for myList in N: myList ๋ฆฌ์ŠคํŠธ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰
	sum+=myList[i]/M*100 ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ณ€ํ™˜ ์ ์ˆ˜ ๋ฐฉ์‹์œผ๋กœ ์ดํ•ฉ ๊ตฌํ•˜๊ธฐ
    
5. avg=sum/N ํ‰๊ท  ๊ตฌํ•˜๊ธฐ
6. print(avg) avg์ถœ๋ ฅํ•˜๊ธฐ

โ–  Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

1. ์‹œํ—˜์„ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N ์ž…๋ ฅ๋ฐ›๊ธฐ
2. myList ๋ฆฌ์ŠคํŠธ์— N๊ฐœ์˜ ๊ฐ ๊ณผ๋ชฉ์˜ ์‹œํ—˜ ์„ฑ์  ์ž…๋ ฅ ๋ฐ›๊ธฐ
3. myList์— ์ €์žฅ๋œ ๊ณผ๋ชฉ์˜ ์‹œํ—˜ ์„ฑ์ ๋“ค ์ค‘ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜ M์— ์ €์žฅ

4. for myList in N: myList ๋ฆฌ์ŠคํŠธ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰
	sum+=myList[i]//sum์— mylist ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ฐ’ ๋”ํ•˜๊ธฐ
    
5. print(sum*100/M/N) avg์ถœ๋ ฅํ•˜๊ธฐ

์ฝ”๋“œ ๊ตฌํ˜„

import sys
input=sys.stdin.readline
N=int(input()) #์‹œํ—˜์„ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜
mylist=list(map(int, input().split())) #๊ฐ ๊ณผ๋ชฉ์˜ ์‹œํ—˜ ์„ฑ์ 

M=max(mylist) #mylist์— ์ €์žฅ๋œ ์ ์ˆ˜๋“ค ์ค‘ ์ตœ๋Œ“๊ฐ’ ์ €์žฅ
sum=0 #๋ณ€ํ™˜ ์ ์ˆ˜์˜ ์ดํ•ฉ
for i in range(N):
    sum+=mylist[i]/M*100
avg=sum/N
print(avg)

โ–  Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

N=int(input())
mylist=list(map(int, input().split()))

M=max(mylist)
sum=sum(mylist)

print(sum*100/M/N)

โ—๏ธsys.stdin.readline()? input()?
๋ณดํ†ต input()์œผ๋กœ ๋ฌธ์ž์—ด ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์ง€๋งŒ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์—ฌ๋Ÿฌ ์ค„์„ ์ž…๋ ฅ๋ฐ›์•„์•ผํ•˜๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ
์ด๋Ÿด ๊ฒฝ์šฐ, import sys๋กœ ๋ชจ๋“ˆ ๋ถˆ๋Ÿฌ์˜ค๊ณ , sys.stdin.readline()์„ ์‚ฌ์šฉ
• strํ˜•์œผ๋กœ ๋ฐ›์•„์ง€๋ฏ€๋กœ ์ •์ˆ˜๋กœ ์‚ฌ์šฉํ•  ๋•Œ ํ˜• ๋ณ€ํ™˜ ์œ ์˜
• ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฒฝ์šฐ split()ํ•จ์ˆ˜๋กœ ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ’ ๋‚˜๋ˆ„๊ธฐ
strip()ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๋งจ ์•ž, ๋งจ ๋์˜ ๊ณต๋ฐฑ ์ œ๊ฑฐ

โญ๏ธ input()๊ณผ sys.stdin.readline()์˜ ์†๋„ ์ฐจ์ด ๋‚˜๋Š” ์ด์œ ?
1. input()์€ ์ธ์ž๋กœ prompt message๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
    sys.stdin.readline()์€ prompt message๋ฅผ ๋ฐ›์•„ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†์–ด ์ƒ๋Œ€์ ์œผ๋กœ ์†๋„๊ฐ€ ๋” ๋นจ๋ผ ๋ณด์ž„
2. input()์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’ ํ•˜๋‚˜ํ•˜๋‚˜๋งˆ๋‹ค ๋ฒ„ํผ์— ์ €์žฅ, ์ž…๋ ฅ์˜ ์ข…๋ฃŒ๊ฐ€ ๋˜๋Š” ๊ธฐ์ค€์ด ๊ฐœํ–‰ ๋ฌธ์ž์ด๋‹ค.
    sys.stdin.readline()์€ ๊ฐœํ–‰ ๋ฌธ์ž๊นŒ์ง€ ํฌํ•จํ•œ ํ•˜๋‚˜์˜ ์ค„์„ ํ•œ ๋ฒˆ์— ๋ฒ„ํผ๋กœ ์ž…๋ ฅ