์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - ํด์
<๋ฒ ์คํธ ์จ๋ฒ>
๋ฌธ์ ์ค๋ช
์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค.
๋ ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ, ๋ ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ํ ๋ ธ๋๊ฐ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
2. ์ฅ๋ฅด ๋ด์์ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
3. ์ฅ๋ฅด ๋ด์์ ์ฌ์ ํ์๊ฐ ๊ฐ์ ๋ ธ๋ ์ค์์๋ ๊ณ ์ ๋ฒํธ๊ฐ ๋ฎ์ ๋ ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.
๋ ธ๋์ ์ฅ๋ฅด๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด genres์ ๋ ธ๋๋ณ ์ฌ์ ํ์๋ฅผ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด plays๊ฐ ์ฃผ์ด์ง ๋,
๋ฒ ์คํธ ์จ๋ฒ์ ๋ค์ด๊ฐ ๋ ธ๋์ ๊ณ ์ ๋ฒํธ๋ฅผ ์์๋๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- genres [i]๋ ๊ณ ์ ๋ฒํธ๊ฐ i์ธ ๋ ธ๋์ ์ฅ๋ฅด์ ๋๋ค.
- plays [i]๋ ๊ณ ์ ๋ฒํธ๊ฐ i์ธ ๋ ธ๋๊ฐ ์ฌ์๋ ํ์์ ๋๋ค.
- genres์ plays์ ๊ธธ์ด๋ ๊ฐ์ผ๋ฉฐ, ์ด๋ 1 ์ด์ 10,000 ์ดํ์ ๋๋ค.
- ์ฅ๋ฅด ์ข ๋ฅ๋ 100๊ฐ ๋ฏธ๋ง์ ๋๋ค.
- ์ฅ๋ฅด์ ์ํ ๊ณก์ด ํ๋๋ผ๋ฉด, ํ๋์ ๊ณก๋ง ์ ํํฉ๋๋ค.
- ๋ชจ๋ ์ฅ๋ฅด๋ ์ฌ์๋ ํ์๊ฐ ๋ค๋ฆ ๋๋ค.
๋ฌธ์ ํ์ด
- my solution
def solution(genres, plays):
answer = []
dic = {}
for i in range(len(genres)):
if genres[i] not in dic:
dic[genres[i]] = plays[i]
else:
dic[genres[i]] += plays[i]
dic = sorted(dic.items(), key=lambda x: -x[1]) # ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด ์
temp = []
for i in range(len(genres)): # list: ์ฅ๋ฅด, ์ฌ์ ํ์, ๊ณ ์ ๋ฒํธ
temp.append([genres[i], plays[i], i])
temp.sort(key=lambda x: (x[0], -x[1])) # ์ ๋ ฌ: ์ฅ๋ฅด ์ด๋ฆ ์, ์ฌ์ ํ์ ์
for i in range(len(dic)): # ์ฅ๋ฅด๋ณ๋ก 2๊ฐ์ฉ ๊ณ ์ ๋ฒํธ ์ถ๋ ฅ
cnt = 0
for j in range(len(temp)):
if temp[j][0] == dic[i][0]:
answer.append(temp[j][2])
cnt += 1
if cnt >= 2:
break
return answer
1) ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ๊ตฌํ๊ธฐ ์ํด: dict๋ก ๊ฐ ์ฅ๋ฅด๋ณ ์ฌ์ ํ์๋ฅผ ๊ตฌํ ๋ค์ ์ ๋ ฌ
2) list: [์ฅ๋ฅด, ์ฌ์ ํ์, ๊ณ ์ ๋ฒํธ]
3) ์ ๋ ฌ: ์ฅ๋ฅด ์ด๋ฆ ์, ์ฌ์ ํ์ ์
4) 1๋ฒ์์ ๊ตฌํ ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ณ๋ก 3๋ฒ ๋ฆฌ์คํธ์์ ๊ฐ์ ๊ตฌํจ
- ์ข ๋ฃ ์กฐ๊ฑด: 2๊ฐ์ฉ ๊ตฌํ๋ ๊ฒ์ด๋ฏ๋ก 2๊ฐ ์ด์์ด๋ฉด break
์๊ฐ๐ค
Level 3๋ผ ์ด๋ ค์ธ ๊ฒ์ด๋ผ ์๊ฐํ์ง๋ง ์๊ฐ๋ณด๋ค ์ฝ๊ฒ ํ ์ ์์๋ค.
์ด ์ฝ๋๋ก ๋ฌธ์ ๋ฅผ ํต๊ณผํ์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ ํจ์ฌ ์งง๊ฒ ํผ ๊ฒ์ ๋ณผ ์ ์์๋ค.
์ฝ๋๋ฅผ ๊ฐ๊ฒฐํ๊ณ ์ ํ์ฑ ์๊ฒ ํ ์ ์๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค. ๐ค
๋ด๊ฐ ์๊ฐํ๊ธฐ์ ์ด ๋ฌธ์ ์ ํฌ์ธํธ
1) ์ ๋ ฌ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ์์ ๊ฒ์ - 2021 KAKAO BLIND RECRUITMENT (0) | 2021.09.14 |
---|---|
[programmers] ๋คํธ์ํฌ (0) | 2021.09.13 |
[programmers] ๋ฐฉ๋ฌธ ๊ธธ์ด - Summer/Winter Coding(~2018) (0) | 2021.09.09 |
[programmers] [3์ฐจ] n์ง์ ๊ฒ์ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.08 |
[programmers] ๊ดํธ ํ์ ํ๊ธฐ - ์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2 (0) | 2021.09.07 |