edu.goorm.io/learn/lecture/17033/cos-pro-2%EA%B8%89-%EA%B8%B0%EC%B6%9C%EB%AC%B8%EC%A0%9C-python
๊ตฌ๋ฆHOME
๊ตฌ๋ฆ์ ํด๋ผ์ฐ๋ ๊ธฐ์ ์ ์ด์ฉํ์ฌ ๋๊ตฌ๋ ์ฝ๋ฉ์ ๋ฐฐ์ฐ๊ณ , ์ค๋ ฅ์ ํ๊ฐํ๊ณ , ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ ์ ์๋ ํด๋ผ์ฐ๋ ์ํํธ์จ์ด ์ํ๊ณ์ ๋๋ค.
www.goorm.io
๐ ๋ฌธ์ ์ค๋ช
ํด๋น ๋ฌธ์ ๋ ์์ฐ์๊ฐ ๋ค์ด ์๋ ๋ฐฐ์ด๋ค ์ฌ์ด์์ ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ๋ ์ซ์๊ฐ ๊ฐ์ฅ ์ ๊ฒ ๋ฑ์ฅํ๋ ์ซ์์ ๋ช ๋ฐฐ์ธ์ง ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
[ ๋งค๊ฐ๋ณ์ ์ค๋ช ]
์ด ๋ฌธ์ ๋ ์ด ํ๋์ ๋ฐฐ์ด์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ต๋๋ค.
๋ฐ์ ๋ฐฐ์ด์์ ๊ฐ ์ซ์๊ฐ ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง ๊ตฌํ๊ณ , ๊ทธ ์ค ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ๋ ์์ ๊ฐ์ฅ ์ ๊ฒ ๋ฑ์ฅํ๋ ์๋ฅผ ์ฐพ์์ผ ํด์.
[ return ๊ฐ ์ค๋ช ]
๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ๋ ์ซ์๊ฐ ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง, ๊ฐ์ฅ ์ ๊ฒ ๋ฑ์ฅํ๋ ์ซ์๋ ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง๋ฅผ ๊ตฌํ๊ณ , ๋์ด ๋ช ๋ฐฐ์ ์ฐจ์ด๊ฐ ๋๋์ง๋ฅผ ๋ฐํํด์ผ ํด์.
์ด ๋, ๋ง์ฝ ๊ฐ๊ฐ ์ด๋ค ์ซ์๊ฐ 2๋ฒ, 5๋ฒ ๋ฑ์ฅํ๋ ๊ฒฝ์ฐ๋ ์์ฐ์๊ฐ ๋์ง ์์ผ๋ฏ๋ก, ์์๋ฅผ ๋ฒ๋ฆฌ๋ฉด ๋ผ์.
์ฆ, 2.5๋ฐฐ์ด์ง๋ง, ์์๋ฅผ ๋ฒ๋ฆฐ 2๊ฐ ๋ฐํ๋๋ ๊ฒ์ด์ฃ .
๊ทธ๋ผ ์ด์ , ์ด๋ฏธ ์ ์๋ ํจ์๋ค์ ์ด๋ค ์ญํ ์ ํ๋์ง ๋ถ์ํด๋ณผ๊ฒ์.
# ์ด ํจ์๋ 0๋ถํฐ 1001๊น์ง ๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ , ํด๋น ์๊ฐ ๋์ฌ ๋๋ง๋ค 1์ฉ ๋ํด์ฃผ๋ ํจ์์์.
# ์ฆ, counter ๋ฐฐ์ด์๋ ๊ฐ ์ธ๋ฑ์ค์ ๋ง๋ ์๊ฐ ๋ช ๋ฒ ๋์๋์ง ์ ์ฅ๋ผ์
# ์๋ฅผ ๋ค์ด, 3์ด ๋์๋ค๋ฉด, counter[3]์ 1์ ๋ํด์ฃผ๋๊ฑฐ์์.
def func_a(arr):
counter = [0 for _ in range(1001)]
for x in arr:
counter[x] += 1
return counter
# ์ด ํจ์๋ ๋ง์ฝ ํด๋น ์๊ฐ ret๋ณด๋ค ํฌ๋ฉด, ๋ฐ๊พธ๋ ํจ์์์.
# ๊ณ์ ํฐ ์๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฏ๋ก ํด๋น ํจ์๋ max๋ฅผ ๊ตฌํ๋ ํจ์๊ฐ ๋๊ฒ ์ฃ ?
def func_b(arr):
ret = 0
for x in arr:
if ret < x:
ret = x
return ret
# ์ด ํจ์๋ ํด๋น ์๊ฐ ret๋ณด๋ค ์์ผ๋ฉด, ๋ฐ๊ฟ์ฃผ๋ ํจ์์์.
# ๊ณ์ ์์ ์๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฏ๋ก ํด๋น ํจ์๋ min์ ๊ตฌํ๋ ํจ์๊ฐ ๋๊ฒ ์ฃ ?
def func_c(arr):
INF = 1001
ret = INF
for x in arr:
if x != 0 and ret > x:
ret = x
return ret
๊ทธ๋ผ ์ด์ ํจ์์ ์ญํ ์ ๋ชจ๋ ์ดํดํ์ผ๋, ์ฐ๋ฆฌ๊ฐ ๊ตฌํํด์ผ ํ๋ ๋ถ๋ถ์ด ๋ฌด์์ธ์ง ๋ด๋ณผ๊ฒ์.
def solution(arr):
counter = func_{๋น์นธ}({๋น์นธ})
max_cnt = func_{๋น์นธ}({๋น์นธ})
min_cnt = func_{๋น์นธ}({๋น์นธ})
return max_cnt // min_cnt
์ฐ๋ฆฌ๋ ๊ฐ ๋ณ์์ ๋ค์ด๊ฐ ํจ์ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ผ์.
๋จผ์ , counter์๋ ์ด๋ค ํจ์๊ฐ ์์ผ ํ๋์ง ๋ด๋ณผ๊ฒ์.
counter๋ ์ ์ฒด ๋ฐฐ์ด์ ๊ฐ ์๊ฐ ๋ช ๋ฒ ๋์๋์ง ๊ตฌํด์ ์ ์ฅํ๋ ๋ณ์์์.
๊ทธ๋ผ ์ฐ๋ฆฐ ์์ ๋ณธ ํจ์ ์ค, ์ฒซ ๋ฒ์งธ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ฒ ์ฃ ?
์ฒซ ๋ฒ์งธ ๋ต : a, arr
๋ค์์ผ๋ก, max_cnt์๋ ๋ญ๊ฐ ๋ค์ด๊ฐ์ผํ ๊น์?
์ด๋ฆ ๊ทธ๋๋ก max๋ฅผ ๊ตฌํ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ผ์.
์ฐ๋ฆฌ๋ ์ฒ์์ ๋ฐ์ ๋ฐฐ์ด์ ์๋ ์(arr)๋ค์ ๋ถ์ํด์(func_a๊ฐ ํ๋ ์ผ), ๊ฐ์ฅ ๋ง์ ํ์๋ฅผ ๊ฐ๋ ์(func_b๊ฐ ํ๋ ์ผ)๋ฅผ ๊ตฌํด์ผ ํด์.
๋ ๋ฒ์งธ ๋ต : b, counter
๋ง์ง๋ง์ผ๋ก, min_cnt์๋ ์ด๋ฆ ๊ทธ๋๋ก, min์ ๊ตฌํ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ผ์.
๋ ๋ฒ์งธ์ ๋น์ทํ๊ฒ, ์ฒ์ ๋ฐ์ ๋ฐฐ์ด์ ์๋ ์(arr)๋ค ์ค, ๊ฐ ๋น๋์๋ฅผ ๊ตฌํ๊ณ (func_a๊ฐ ํ๋ ์ผ), ๊ทธ ์ค ๊ฐ์ฅ ์ ์ ํ์๋ฅผ ๊ฐ๋ ์๋ฅผ ๊ตฌํ๋ฉด ๋ผ์. (func_c๊ฐ ํ๋ ์ผ)
์ธ ๋ฒ์งธ ๋ต : c, counter
์ ๋ต ์ฝ๋
def solution(arr):
counter = func_a(arr)
max_cnt = func_b(counter)
min_cnt = func_c(counter)
return max_cnt // min_cnt
์ด ๋ฌธ์ ๋ ๋น์นธ์ ์ฑ์ฐ๋ ๋ฌธ์ ์์ด์. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋
1. ์ ์๋์ด ์๋ ํจ์๋ค์ด ์ด๋ค ์ผ์ ํ๋์ง ์ดํดํ๊ณ ,
2. ๋งค๊ฐ๋ณ์์ ์ญํ ์ ์ดํดํด์ผ ํด์.
3. ๋ค์์ผ๋ก, ํด๊ฒฐํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ์ดํดํ๋ฉด ํด๊ฒฐํ ์ ์์ด์ !
'๐ฉต CosPro > python 2๊ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CosPro 2๊ธ 1์ฐจ] 3๋ฒ ์ ๋ต ๋ฐ ํด์ค (0) | 2025.03.14 |
---|---|
[CosPro 2๊ธ 1์ฐจ] 2๋ฒ ์ ๋ต ๋ฐ ํด์ค (0) | 2025.03.13 |
[CosPro 2๊ธ 1์ฐจ] 1๋ฒ ์ ๋ต ๋ฐ ํด์ค (0) | 2025.03.12 |