def solution(X, Y):
answer = ''
count_X = [0] * 10
count_Y = [0] * 10
for i in [X, Y]:
for j in i:
if i == X:
count_X[int(j)] += 1
else:
count_Y[int(j)] += 1
for i in range(9, -1, -1):
add = ''
if count_X[i] <= count_Y[i]:
add = str(i)*count_X[i]
else:
add = str(i)*count_Y[i]
answer += add
if answer == '':
answer = '-1'
if answer[0] == '0':
answer = '0'
return answer
각 배열에 카운팅을 해주고 해당 숫자를 카운팅한 배열끼리 비교하여 그 수가 적은 값만큼 인덱스와 곱하여 넣어준다.
솔팅을 위해 뒤에서부터 for문을 순회하여 answer에 더해준다.
00일 땐 '0'을 리턴하고, answer가 존재 하지 않으면 '-1'을 리턴해야한다.
형변환은 시간을 많이 잡아먹는다. 처음엔 리턴값을 형변환해줘 풀이 했는데 시간초과..
'Programmers' 카테고리의 다른 글
[프로그래머스 / 파이썬 풀이] 숫자 문자열과 영단어 (0) | 2023.01.20 |
---|---|
[프로그래머스 / 파이썬 풀이] 성격 유형 검사하기 (0) | 2023.01.19 |
[프로그래머스 / 파이썬 풀이] 콜라 문제 (0) | 2023.01.17 |
[프로그래머스 / 파이썬 풀이] 옹알이(2) (0) | 2023.01.15 |
[프로그래머스 / 파이썬 풀이] 햄버거 만들기 (0) | 2023.01.14 |