프로그래밍/Python

[프로그래머스] 짝꿍 숫자 문제 - Python3

민또배기 2022. 10. 25. 15:33
반응형

프로그래머스 코딩테스트 중 짝꿍 숫자 문제 Python3풀이 입니다.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


처음 저는 X,Y를 리스트로 받아서 각 값들을 비교한 뒤 정렬을 하면 되겠다 싶어, 아래와 같이 시도 했습니다.
테스트 케이스는 통과 됐지만 채점 중 시간초과로 탈락처리 되었습니다. -> 이유를 아시는 분은 알려주세요...

def solution(X, Y):
    answer = list()
    xList = list(X)
    yList = list(Y)
    
    for i in xList:
        if i in yList:
            yList.remove(i)
            answer.append(i)
            
    
    if len(answer) == 0: 
        return "-1"
    if answer.count('0') == len(answer):
        return "0"
    
    answer.sort(reverse=True)
    return ''.join(answer)


검색해보니 아래 사이트의 방법으로 성공은 됐지만 제가 했던 방법과 차이는 아직 잘 모르겠습니다.
https://velog.io/@bobsini601/프로그래머스-숫자-짝꿍

 

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

딕셔너리를 사용한 문제

velog.io


다른 분들의 코드 중 맘에 드는 방법을 추가로 올려봅니다.

def solution(X, Y):
    answer = ''

    for i in range(9,-1,-1) :
        answer += (str(i) * min(X.count(str(i)), Y.count(str(i))))

    if answer == '' :
        return '-1'
    elif len(answer) == answer.count('0'):
        return '0'
    else :
        return answer
반응형