https://programmers.co.kr/learn/courses/30/lessons/42883
이것저것 여러 풀이 방식으로 풀었다. 나머지 테스트는 모두 통과했지만 10번에서 시간 초과가 났다
def solution(number, k):
result = len(number)-k
index = 0
answer = ''
while k>0 and len(answer)!=result:
max_index = number[index:index+k+1].find(max(number[index:index+k+1]))
answer+=number[index:index+k+1][max_index]
k-=max_index
index += max_index+1
return answer if k else answer+number[index:]
다른 사람 풀이를 참고했는데,
맨 처음 코드 작성할 때 이렇게 스택 활용해서 거의 동일하게 작성했는데 시간초과가 나서 위의 방식으로 시도했던 건데,그때는 틀리고 아래 방식은 맞아서 마음이 아팠다.
곰곰히 생각해보니 난 필요 없는 리스트 인덱싱을 사용했다.
앞으로 잘 해봐야겠다.
def solution(number, k):
answer = [] # Stack
for num in number:
while k > 0 and answer and answer[-1] < num:
answer.pop()
k -= 1
answer.append(num)
return ''.join(answer[:len(answer) - k])
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 섬 연결하기(Python) (0) | 2021.10.28 |
---|---|
[프로그래머스] 구명보트 (Python) (0) | 2021.10.27 |
[프로그래머스] 조이스틱(Python) (0) | 2021.10.26 |
[프로그래머스] 괄호 변환(Python) (0) | 2021.10.23 |
[프로그래머스] 짝지어 제거하기(Python) (0) | 2021.10.23 |
댓글