[프로그래머스] 숫자 짝꿍 (Python)

박신희·2022년 10월 6일
0

[풀이] 프로그래머스

목록 보기
26/33
post-thumbnail

❗ 풀이 과정

  • 맨 처음에, X,Y 문자열 안의 각 문자들을 하나하나 탐색해주면서, Y안에 x있으면 짝꿍인 숫자 하나씩 빼주면(remove) 되지! 라는 비효율적인 생각을 했다. 그 결과, 몇개의 테케는 시간초과가 났다.
  • {숫자 : 숫자의 개수} 형식의 dictionary를 만들어주고, y안에 x있으면 dict[숫자]-=1 해주는 방식으로 풀었더니, 통과!

🤜 풀이 코드

def solution(X, Y):
    answer  = []
    xDict   = dict()
    yDict   = dict()
    
    # xDict 생성
    for x in X:
        xDict[x] = xDict.get(x,0)+1
        
    # yDict 생성
    for y in Y:
        yDict[y] = yDict.get(y,0)+1
    
    # xDict의 key를 기준으로 탐색해서, 짝꿍이 있다면, xDict와yDict에서 -1 해주고 answer에 추가
    for k,v in xDict.items():
        if k in yDict.keys():
            while yDict[k]>0 and xDict[k]>0:
                answer.append(k)
                yDict[k]=yDict.get(k)-1
                xDict[k]=xDict.get(k)-1
    
    # 아무것도 없는 경우 return -1        
    if(len(answer)==0):                 return "-1"   

    # answer에 0들밖에 없을 경우 return 0
    if(answer.count('0')==len(answer)): return "0"

    answer.sort(reverse=True)
    
    return ''.join(answer)
profile
log my moments 'u')/

0개의 댓글