๋šœ๋ถ€๋‹ˆ์˜ Devlog

[Programmers] ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ (Python)

by ๋šœ๋ถ€๋‹ˆ

 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ

๋ ˆ์Šคํ† ๋ž‘์„ ์šด์˜ํ•˜๋˜ ์Šค์นดํ”ผ๋Š” ์ฝ”๋กœ๋‚˜19๋กœ ์ธํ•œ ๋ถˆ๊ฒฝ๊ธฐ๋ฅผ ๊ทน๋ณตํ•˜๊ณ ์ž ๋ฉ”๋‰ด๋ฅผ ์ƒˆ๋กœ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋Š” ๋‹จํ’ˆ์œผ๋กœ๋งŒ ์ œ๊ณตํ•˜๋˜ ๋ฉ”๋‰ด๋ฅผ ์กฐํ•ฉํ•ด์„œ ์ฝ”์Šค์š”๋ฆฌ ํ˜•ํƒœ๋กœ ์žฌ๊ตฌ์„ฑํ•ด์„œ

programmers.co.kr

 

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

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

 

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

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

๊ทธ ์ค‘ ๋ฉ”๋‰ด ์กฐํ•ฉ์ด ๊ฐ€์žฅ ๋งŽ์ด ๋‚˜์˜จ ๊ฐ’์„ max_๋กœ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.

max_๊ฐ€ 2 ์ด์ƒ์ด๋ฉด, ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋ฏ€๋กœ ์ฝ”์Šค ์š”๋ฆฌ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ’€๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

from itertools import combinations
from collections import Counter

def solution(orders, course):
    answer = []
    
    for c in course :
        temp = []
        for order in orders :
            combi = combinations(sorted(order), c)
            temp += combi
        odict = Counter(temp) 
        
        if odict : 
            max_ = max(list(odict.values()))
            if max_ >= 2:
                for key, value in odict.items() :
                    if odict[key] == max_ :
                        answer.append(''.join(key))
    
    return sorted(answer)
 

๋ธ”๋กœ๊ทธ์˜ ์ •๋ณด

๋šœ๋ถ€๋‹ˆ์˜ Devlog

๋šœ๋ถ€๋‹ˆ

ํ™œ๋™ํ•˜๊ธฐ