Super Kawaii Cute Cat Kaoani
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/Python

[Python] ์„ฑ์  ํ‰๊ท  - ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ

728x90

< ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ >


Softeer ์—ฐ์Šต๋ฌธ์ œ : https://softeer.ai/practice/6294

 


 

๐Ÿงท ๋ฌธ์ œ

N๋ช…์˜ ํ•™์ƒ๋“ค์˜ ์„ฑ์ ์ด ํ•™๋ฒˆ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์กŒ๋‹ค.

ํ•™๋ฒˆ ๊ตฌ๊ฐ„ [A, B]๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ์ด ํ•™์ƒ๋“ค ์„ฑ์ ์˜ ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

 

๐Ÿงท ์ œ์•ฝ์กฐ๊ฑด

1 N < 10^6 ์ธ ์ •์ˆ˜

1≤K < 10^4 ์ธ ์ •์ˆ˜

1 Si < 100 ์ธ ์ •์ˆ˜

1 Ai Bi < N

 

๐Ÿงท ์ž…๋ ฅํ˜•์‹

์ฒซ ๋ฒˆ์งธ ์ค„์— ํ•™์ƒ ์ˆ˜ N๊ณผ ๊ตฌ๊ฐ„ ์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ํ•™์ƒ์˜ ์„ฑ์  Si(1iN)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

i + 2 (1iK)๋ฒˆ์งธ ์ค„์—๋Š” 1๋ฒˆ ์งธ ๊ตฌ๊ฐ„ Ai, Bi๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

 

๐Ÿงท ์ถœ๋ ฅํ˜•์‹

i๋ฒˆ์งธ ์ค„์— i๋ฒˆ์งธ ๊ตฌ๊ฐ„์˜ ์„ฑ์ ํ‰๊ท (์†Œ์ˆ˜์…‹์งธ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ)์„ ์ถœ๋ ฅํ•œ๋‹ค.

์ฐจ์ด๊ฐ€ 0.01์ดํ•˜์ด๋ฉด ์ •๋‹ต์œผ๋กœ ์ฑ„์ ๋จ.

 

๐Ÿงท ์ž…๋ ฅ์˜ˆ์ œ1

5 3

10 50 20 70 100

1 3

3 4

1 5

 

๐Ÿงท ์ถœ๋ ฅ์˜ˆ์ œ1

26.67

45.00

50.00

 

๐Ÿงท ํŒŒ์ด์ฌ ์ฝ”๋“œ

(์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜์—)

 

โœ”๏ธ ๊ฐ’ ์ž…๋ ฅ๋ฐ›๊ธฐ

# ๊ฐ’ ๋‘ ๊ฐœ์— ์ž…๋ ฅ๋ฐ›๊ธฐ
n, k = map(int, input().split())

# ๋ฆฌ์ŠคํŠธ๋กœ ์ž…๋ ฅ๋ฐ›๊ธฐ
scores = list(map(int, input().split()))

 

โœ”๏ธ ๊ตฌ๊ฐ„ ์•ˆ์˜ ์ ์ˆ˜ ํ•ฉํ•˜๊ธฐ

# ๊ตฌ๊ฐ„(k)๋งŒํผ ๋ฐ˜๋ณต
for _ in range(k):
	# ๊ตฌ๊ฐ„ ์ž…๋ ฅ ๋ฐ›๊ธฐ
    a, b = map(int, input().split())
    # ํ•ด๋‹น ๊ตฌ๊ฐ„๋งŒํผ์˜ ์ ์ˆ˜ ๋ฆฌ์ŠคํŠธ๋กœ ์ €์žฅ
    range_list = scores[a-1:b]
    # ๊ตฌ๊ฐ„ ์•ˆ์˜ ์ ์ˆ˜ ํ•ฉํ•˜๊ธฐ
    total = sum(range_list)

 

โœ”๏ธ ์ถœ๋ ฅ

# ํ‰๊ท  ๊ตฌํ•˜๊ธฐ
result = total /(b - a + 1)
# ์†Œ์ˆ˜์  ๋‘˜์งธ์ž๋ฆฌ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ
print(round(result, 2))

 

โœ”๏ธ ์ „์ฒด ์ฝ”๋“œ

n, k = map(int, input().split())
scores = list(map(int, input().split()))

for _ in range(k):
  a, b = map(int, input().split())
  range_list = scores[a-1:b]
  
  total = sum(range_list)
    
  result = total /(b - a + 1)
  print(round(result, 2))
728x90