Search

์กฐ์˜ˆ์ง€

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
1800
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
def solution(genres, plays): g_list = {} #"genre" : [(์žฌ์ƒํšŸ์ˆ˜, ๊ณ ์œ ๋ฒˆํ˜ธ)] for i in range(len(genres)): if genres[i] not in g_list: g_list[genres[i]] = [] g_list[genres[i]].append((plays[i], i)) g_play = [] #(์ด์žฌ์ƒํšŸ์ˆ˜, ์žฅ๋ฅด) for g in g_list: g_num = 0 for s_play in g_list[g]: g_num += s_play[0] g_play.append((g_num, g)) g_play.sort(reverse = True) answer = [] for i in range(len(g_play)): g = g_list[g_play[i][1]] g.sort(reverse = True) a = g[0] try: b = g[1] if a[0] == b[0]: answer.append(b[1]) answer.append(a[1]) else: answer.append(a[1]) answer.append(b[1]) except: answer.append(a[1]) return answer
Python
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
1.
"genre" : [(์žฌ์ƒํšŸ์ˆ˜, ๊ณ ์œ ๋ฒˆํ˜ธ)] ํ˜•ํƒœ๋กœ genres์™€ plays๋ฅผ loop๋ฅผ ๋Œ๋ฉฐ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ฑ„์šด๋‹ค.
2.
๋งŒ๋“ค์–ด์ง„ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋Œ๋ฉฐ ์žฅ๋ฅด ๋‹น ์ด ์žฌ์ƒํšŸ์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด (์ด ์žฌ์ƒํšŸ์ˆ˜, ์žฅ๋ฅด) ํ˜•ํƒœ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.
3.
์ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
4.
๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๋”•์…”๋„ˆ๋ฆฌ์—์„œ ์žฅ๋ฅด์˜ (์žฌ์ƒํšŸ์ˆ˜, ๊ณ ์œ ๋ฒˆํ˜ธ) ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
5.
์žฅ๋ฅด ๋‹น ๋…ธ๋ž˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
a.
์ฒซ ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ ์›์†Œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
i.
๋‘๋ฒˆ์งธ ์›์†Œ๊ฐ€ ์—†์œผ๋ฉด ์ฒซ๋ฒˆ์งธ ์›์†Œ๋งŒ answer์— ๋“ฑ๋กํ•œ๋‹ค.
b.
์ฒซ ๋ฒˆ์งธ ์›์†Œ์™€ ๋‘ ๋ฒˆ์งธ ์›์†Œ์˜ ์žฌ์ƒํšŸ์ˆ˜๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ณ ์œ ๋ฒˆํ˜ธ๊ฐ€ ๋‚ฎ์€ ๋‘๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋จผ์ € ๋“ฑ๋กํ•˜๊ณ  ์ฒซ๋ฒˆ์งธ๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.
c.
๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ˆœ์„œ๋Œ€๋กœ ๋“ฑ๋กํ•œ๋‹ค.
ย sorted(key = lambda)๋ฅผ ์ด์šฉํ•ด์„œ ๋’ท ๋ถ€๋ถ„์„ ์งง๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
... for i in range(len(g_play)): g = sorted(g_list[g_play[i][1]], key=lambda m: (-m[0], m[1])) answer.append(g[0][1]) try: answer.append(g[1][1]) except: pass return answer
Python
๋ณต์‚ฌ