๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/PROGRAMMERS

[python]ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ

by DevIseo 2022. 7. 27.

[python]ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ

https://school.programmers.co.kr/learn/courses/30/lessons/72411

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

from itertools import combinations
from collections import Counter


def solution(orders, course):
    answer = []
    for c in course:
        temp = []
        for o in orders:
            menu = combinations(sorted(o),c)
            temp += menu
            # print(temp)
        counter = Counter(temp)
        # print(counter)
        # print(len(counter))
        if counter:
            max_val = max(list(counter.values()))
            if max_val >= 2:
                for key,value in counter.items():
                    if counter[key] == max_val:
                        answer.append(''.join(key))
    return sorted(answer)

์ •ํ•ด์ง„ ์ˆ˜๋งŒํผ ๋‹จํ’ˆ ๋ฉ”๋‰ด ๊ฐฏ์ˆ˜๊ฐ€ ํฌํ•จ๋œ ์ฝ”์Šค ์š”๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•จ.

์ตœ์†Œ 2๋ช… ์ด์ƒ์ด ์ฃผ๋ฌธํ•œ ์Œ์‹์ด์–ด์•ผ ํ•˜๊ณ , 2๋ช… ์ด์ƒ ์ฃผ๋ฌธํ•œ ๋ฉ”๋‰ด ์กฐํ•ฉ์ด์–ด์•ผ ํ•จ.

 

combination,Counter ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๋ถˆ๋Ÿฌ์™€ ํ’€๋ฉด ๋œ๋‹ค!

1. combination์„ ์‚ฌ์šฉํ•ด ์ •ํ•ด์ง„ ๋‹จํ’ˆ ๋ฉ”๋‰ด ๊ฐฏ์ˆ˜๋งŒํผ ๋ฉ”๋‰ด ์กฐํ•ฉ์„ ์ƒ์„ฑํ•ด ๋ฆฌ์ŠคํŠธ์— ์ €์žฅ

2. Counter๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”๋‰ด ์กฐํ•ฉ ๋ฆฌ์ŠคํŠธ์—์„œ ๊ฐ๊ฐ์˜ ๋ฉ”๋‰ด ์กฐํ•ฉ์ˆ˜ ์„ธ๊ธฐ

3. ๋ฉ”๋‰ด ์กฐํ•ฉ์ด ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜จ ๊ฐ’์„ max_val๋กœ ์ €์žฅ

4. 2 ์ด์ƒ ์ฃผ๋ฌธํ•œ ๋ฉ”๋‰ด ์กฐํ•ฉ์ด์–ด์•ผ ํ•˜๋ฏ€๋กœ max_val์ด 2 ์ด์ƒ์ด๋ฉด, ์ฃผ์–ด์ง„ ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋ฏ€๋กœ answer์— ์ถ”๊ฐ€

๋Œ“๊ธ€