์ฝ”ํ…Œ์ค€๋น„

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค. ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

์š”๋Œœ๋‹ค 2023. 1. 24. 16:16

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

 

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

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

programmers.co.kr

# 50์ . ์‹œ๊ฐ„์ดˆ๊ณผ๋‚œ ์ฝ”๋“œ
def solution(participant, completion):
    answer = ''
    ans = {}
    for i in participant:
        if i in ans:
            ans[i] += 1
        else :
            ans[i] = 1
        if i in completion:
            del ans[i]
            del completion[completion.index(i)]      
    return ''.join(ans.keys())

์œ„ ์ฝ”๋“œ๋Š” ์ •ํ™•์„ฑ์€ ๋‹ค ๋งž์•˜์ง€๋งŒ, ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ ์ฝ”๋“œ์ด๋‹ค.

del์€ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N)์ด๋ผ์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™๋‹ค

ํ  ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ด์•ผ๊ฒ ๋‹ค.

def solution(participant, completion):
    answer = ''
    ans = {}
    for i in participant:
        if i in ans:
            ans[i] += 1
        else :
            ans[i] = 1
    for i in completion:
        if i in ans.keys():
            ans[i] -= 1
    k = [key for key,val in ans.items() if val==int(max(ans.values()))]

    
    return ''.join(k)

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹œ๊ฐ„ ์ดˆ๊ณผ..

def solution(participant, completion):
    answer = ''
    ans = {}
    for i in participant:
        if i in ans:
            ans[i] += 1
        else :
            ans[i] = 1
            
    for i in completion :
        if ans[i]==1 : 
            del ans[i]
        else :  #๋™๋ช…์ด์ธ ๊ฒฝ์šฐ
            ans[i] -=1
    
    return ''.join(ans.keys())

์œ„๋Š” ๋™๋ช…์ด์ธ์ผ ๋• 1์”ฉ ๋นผ์ฃผ๊ณ , 1์ธ ๊ฒฝ์šฐ๋Š” ๋™๋ช…์ด์ธ์ด ์—†๋‹ค๋Š” ๋œป์œผ๋กœ ์™„์ฃผ์ž ๋ชฉ๋ก์— ์žˆ์„ ๊ฒฝ์šฐ ์•„์˜ˆ ์‚ญ์ œํ•ด์ฃผ์—ˆ๋‹ค.