ํฐ์คํ ๋ฆฌ ๋ทฐ
Lesson 5: Prefix Sums → Min Avg Two Slice
dirmathfl 2020. 6. 8. 18:11๋ฌธ์
https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/
๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๋ชจ๋ ๊ตฌ๊ฐ์ ๋ํด ํ๊ท ์ ๊ตฌํด์ผ ํ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ๋ชจ๋ ๊ตฌ๊ฐ์ ๋ํ ํ๊ท ์ ๊ตฌํ ๊ฒฝ์ฐ ํจ์จ์ฑ ๋ถ๋ถ์ ํต๊ณผํ์ง ๋ชปํ์ฌ ์ ์๋ฅผ ๋ฐ์ง ๋ชปํ๋ค. ์๋ธ ๊ทธ๋ฃน์์ ํ๊ท ์ ๊ตฌํ ๋์ ํน์ฑ์ ํ์ฉํ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐ ํ ์ ์์ผ๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ํ์ง ๋ชปํ๋ค.
๋ฌธ์ ํ์ด
์๋ฅผ ๋ค์ด ์๊ฐ 4, 2, 2, 5๊ฐ ์์ ๊ฒฝ์ฐ ๊ฐ ๊ตฌ๊ฐ์ ๋ํ ํ๊ท ์ ๊ตฌํ๋ค๊ณ ๊ฐ์ ํ์
-
๊ตฌ๊ฐ์ด 2์ธ ๊ฒฝ์ฐ
-
(4 + 2) / 2 = 3
-
(2 + 2) / 2 = 1
-
(2 + 5) / 2 = 3.5
-
-
๊ตฌ๊ฐ์ด 3์ธ ๊ฒฝ์ฐ
-
(4 + 2 + 2) / 3 = 2.67 (๋ฐ์ฌ๋ฆผ)
-
(2 + 2 + 5) / 3 = 3
-
-
๊ตฌ๊ฐ์ด 4์ธ ๊ฒฝ์ฐ
-
(4 + 2 + 2 + 5) / 4 = 3.25
-
์์ ์๋ ๊ตฌ๊ฐ์ด 2, 3์ธ ๊ฒฝ์ฐ๋ง ํ์ธํ๋ฉด ๋ ์ด์์ ๊ตฌ๊ฐ์ ํ์ธํ๋ ๊ฒ์ ๋ฌด์๋ฏธํ๋ค๋ ์ฑ์ง์ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ์์์ด๋ค.
์ฝ๋
def solution(A):
min_avg = (A[0] + A[1]) / 2
min_idx = 0
for i in range(2, len(A)):
avg = (A[i - 2] + A[i - 1] + A[i]) / 3
if min_avg > avg:
min_avg = avg
min_idx = i - 2
avg = (A[i - 1] + A[i]) / 2
if min_avg > avg:
min_avg = avg
min_idx = i - 1
return min_idx
-
๊ตฌ๊ฐ 2, 3์ ๋ํ ํ๊ท ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ๋ํด ์ฐพ๊ณ ์์ ์ง์ (min_idx)๋ฅผ ์ ์งํ ํ ๋ฐํํ๋ฉด ๋๋ค.
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > Codility' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lesson 6: Sorting โ Distinct (0) | 2020.06.08 |
---|---|
Lesson 5: Prefix Sums โ Passing Cars (0) | 2020.06.08 |
Lesson 5: Prefix Sums โ Genomic Range Query (0) | 2020.06.07 |
Lesson 5: Prefix Sums โ Count Div (0) | 2020.06.07 |
Lesson 4: Counting Elements โ Perm Check (0) | 2020.06.06 |