728x90
제목
제출했던 답(오답)
def solution(X, Y):
answer = ''
numList = []
flag = 0
for i in range(0, 10):
xcount = X.count(str(i))
ycount = Y.count(str(i))
if xcount != 0 and ycount != 0:
numList.extend([i] * min(xcount, ycount) )
if len(numList) == 0:
answer = '-1'
else:
numList.sort(reverse=True)
answer = str(int(''.join(map(str,numList))))
return answer
위와 같이 코드를 작성했을때는 11번부터 15번까지 시간초과가 떴습니다.
원인을 알아보니 answer = str(int(''.join(map(str,numList)))) 이 부분 때문이었습니다.
형변환을 str(int())이렇게 2번 연속으로 하면 시간이 매우 많이 소요되어 시간초과가 떴던 것이었습니다.
따라서 숫자 리스트를 만들어주고 0만 있는 경우를 any를 통하여 0을 return하도록 바꿔 형 변환을 줄여주어 시간을 단축하였습니다.
정답
def solution(X, Y):
answer = ''
num = ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
numList = []
flag = 0
for i in range(0, 10):
xcount = X.count(str(i))
ycount = Y.count(str(i))
if xcount != 0 and ycount != 0:
numList.extend([i] * min(xcount, ycount) )
if len(numList) == 0:
answer = '-1'
else:
if any(numList) == False:
return "0"
numList.sort(reverse=True)
answer = ''.join(map(str,numList))
return answer
728x90
'프로그래머스 코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 대충 만든 자판 Python (0) | 2024.07.05 |
---|---|
[프로그래머스] 문자열 나누기 Python (0) | 2024.07.05 |
[프로그래머스] 체육복 Python (1) | 2024.07.05 |
[프로그래머스] 옹알이 (2) Python (1) | 2024.07.02 |
[프로그래머스]로또의 최고 순위와 최저 순위 Python (0) | 2024.07.02 |