๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค ์์
https://school.programmers.co.kr/learn/courses/30/lessons/42578
ํค์๋๊ฐ ํด์์ธ๋งํผ, ์ต๋ํ ํด์๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค.
์ฝ๋
def solution(clothes):
closet = {}
for name, kind in clothes:
if kind in closet.keys():
closet[kind] += [name]
else:
closet[kind] = [name]
answer = 1
for _, value in closet.items():
answer *= (len(value) + 1)
return answer - 1
ํ์ด
clothes = [["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]] ์ด๋ผ๋ฉด
for name, kind in clothes:
if kind in closet.keys():
closet[kind] += [name]
else:
closet[kind] = [name]
์ด ๊ณผ์ ์ ํตํด ์์์ ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๋๋๋ค.
closet = {'eyewear': ['blue_sunglasses'], 'headgear': ['yellow_hat', 'green_turban']}
answer = 1
for _, value in closet.items():
answer *= (len(value) + 1)
return answer - 1
A๊ฐ n๊ฐ, B๊ฐ m๊ฐ, C๊ฐ k๊ฐ๋ฉด ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ (n+1) * (m+1) * (k+1) ๊ฐ ์ด๋ค.
eyewear๊ฐ 1๊ฐ, headgear๊ฐ 2๊ฐ์ผ ๊ฒฝ์ฐ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ (1+1) * (2+1) ๊ฐ
(n+1) * (m+1) * (k+1) ๊ณผ์ ์์ ‘+1’์ ํ๋ ์ด์ ๋ ์ด๋ค ์นดํ ๊ณ ๋ฆฌ์ ์์์ ์ ์ ์ ๊ฒฝ์ฐ๋ ๊ณ ๋ คํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ต์ข ๋ฆฌํด๊ฐ์ ‘-1’์ ํ ์ด์ ๋ ๋ชจ๋ ์์์ ์ ์ง ์์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
์๋กญ๊ฒ ๋ฐฐ์ด์ / ๋๋์
- ์ด๋ค ๊ฐ์ ์ธ๊ธฐ ์ํด์ ๋ฐฐ์ด์์ count() ํจ์๋ฅผ ์ธ ์ ์๋ค. ์ด๋๋ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
- ํ์ง๋ง ์์์ ๋ดค๋ฏ ์ด๋ค๊ฐ์ด ๋ช๊ฐ ์๋์ง ์๊ณ ์ถ๋ค๋ฉด ํด์์์๋ len()์ผ๋ก ์ฝ๊ฒ ๋ฝ์๋ผ ์ ์๋ค.
- len()์ ์๊ฐ๋ณต์ก๋๋ O(1)์ด๊ธฐ ๋๋ฌธ์ [ ๋ฐฐ์ด์์ count()๋ก ๊ฐ์ ๋ฝ์๋ด๋๊ฑฐ vs ํด์์์ len()์ผ๋ก ๊ฐ์ ๋ฝ์๋ด๋๊ฑฐ ] ์๊ฐํด๋ณด๋ฉด ํด์๊ฐ ์์น์ด๋ค!
- ๋ ์ต๊ด ๋ชป๋ฒ๋ฆฌ๊ณ ๋ฐฐ์ด๋ก ์๋ฃ๊ตฌ์กฐ ๋ง๋ค์ด์ count()์จ์ ํด๊ฒฐํ ๋ผ๊ณ ํ๋ค! (์ผ์ด๊ตฌ!)
- ์ ์ฒด ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ํ๋ฉด์ ์ด๋ค ๊ฐ์ ๋ฝ์๋ด์ผ ํ๋ค๋ฉด ํด์๋ฅผ ์ด์ฉํ๋๊ฒ ์๊ฐ๋ณต์ก๋๋ฅผ ํจ์ฌ ์ค์ผ ์ ์๋ค๋๊ฑธ ํญ์ ๋ช ์ฌํด์ผ๊ฒ ๋ค.
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ (0) | 2024.05.28 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ (0) | 2024.05.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2024.05.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2024.05.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ๋ฒํธ๋ชฉ๋ก (0) | 2024.05.21 |