본문 바로가기

알고리즘/프로그래머스 문제풀이

프로그래머스 숫자짝꿍(lv1, python)

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/131128?language=python3 

 

프로그래머스

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

programmers.co.kr

문제접근

  • 두 정수 X, Y가 둘 다 갖고있는 수로 만들 수 있는 가장 큰 수를 리턴하는 문제
  • 1~9까지 같은 수를 몇 개 갖고있는지 판별하는 것이 관건

 

풀이(다른사람 풀이 참고)

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 len(answer) == 0:
        return '-1'
    elif len(answer) == answer.count('0'):
        return '0'
    else:
        return answer

9부터 0까지 하나씩 내려오며 (해당 수) * (해당 수가 들어있는 개수)를 문자열에 누적

for문 갈겨쓰며 구현한 것보다 가독성이 깔끔해서 가져옴