여름의 서재
[프로그래머스] 큰 수 만들기 본문
728x90
📕 문제
https://programmers.co.kr/learn/courses/30/lessons/42883
💡 풀이법
1. 가능한 한 앞에 가장 큰 수가 오도록 해야 하기 때문에 가능한 인덱스(제거한 수의 개수까지 생각한 인덱스)까지 for문을 돌면서 가장 큰 수를 찾는다.
2. 만약 9를 만나면 9는 가장 큰 수이기 때문에 뒤를 더 볼 필요가 없기 때문에 break를 한다.
3. for문이 끝나고 나면 k를 +1 해준다. k가 number의 길이와 같아지면 수를 완성한 것이기 때문에 while문을 종료한다.
(k = 제거한 수 + 선택한 수 = number의 길이)
def solution(number, k):
new = []
idx = -1
while k < len(number):
m = '0'
for i in range(idx+1,k+1):
if m < number[i]:
idx = i
m = number[i]
if m == '9':
break
new.append(m)
k += 1
return "".join(new)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 기능개발 (파이썬 & 자바) (0) | 2021.12.08 |
---|---|
[프로그래머스] 불량 사용자 (0) | 2021.12.07 |
[프로그래머스] 멀쩡한 사각형 (0) | 2021.11.17 |
[프로그래머스] 수식 최대화 (0) | 2021.11.13 |
[프로그래머스] 괄호 변환 (0) | 2021.11.07 |
Comments