파이썬/코딩테스트

[프로그래머스] 숫자 짝궁 - Python(파이썬)

대전집주인 2024. 3. 23. 16:47
728x90
SMALL

 

문제 이해

  • X와 Y의 숫자를 비교하여 같은 숫자를 찾아라
  • 공통으로 나타나는 숫자를 가장 큰 정수로 리턴해라
  • 정수는 0이 될수 없다.
  • 공통 숫자가 없으면 -1

0 ~ 9 까지 숫자를 담을 리스트 n1, n2를 생성하여 해당하는 숫자 위치에 +1 추가 한다.

n1, n2를 비교하며 n2가 크면 str(i)*n1[i] 아니라면 str(i)*n2[i] 로 문자열을 붙여준다.

 

def solution(X, Y):
    answer = ''
    n1 = [0,0,0,0,0,0,0,0,0,0,0]
    n2 = [0,0,0,0,0,0,0,0,0,0,0]

    for i in X:
        n1[int(i)] += 1
    for i in Y:
        n2[int(i)] += 1

    for i in range(9,-1, -1):
      n = n1[i] if n1[i] < n2[i] else n2[i]
      answer += str(i)*n
      

    if len(answer) == 0:
        return "-1"
    else: 
        if answer[0] == '0':
          return '0'
        else:
          return answer
728x90
LIST