

from itertools import combinations, permutations
def solution(number, k):
answer = ''
nums = list(map(int,number))
nums_list = list(combinations(nums,k))
arr = list()
for x,y in nums_list:
arr.append(x*10+y)
print(max(arr))
return answer
for x,y in nums_list:
arr.append(x*10+y)
from itertools import combinations, permutations
def solution(number, k):
n = len(number) - k
nums_list = list(combinations(map(int,number),n))
arr = list()
for num in nums_list:
number = 0
for i in range(n):
number += num[i] * (10**(n-1-i))
arr.append(number)
return str(max(arr))
시간 초과로 인한 실패
채점 결과
정확성: 25.0
합계: 25.0 / 100.0
이중 for 문을 조금 더 간단하게 만들 수 있는 방법은 없을까
from itertools import combinations, permutations
def solution(number, k):
n = len(number) - k
nums_list = list(combinations(number,n))
arr = list()
for num in nums_list:
arr.append(''.join(num))
return (max(arr))
결국 모르겠어서 구글링을 통해 stack 을 활용한다는 것을 알게됨. 하지만 그래서 잘 이해가 안되어서 다른 풀이를 참고했다
def solution(number, k):
stack = [number[0]]
for num in number[1:]:
while len(stack) > 0 and stack[-1] < num and k > 0:
k -= 1
stack.pop()
stack.append(num)
if k != 0:
stack = stack[:-k]
return ''.join(stack)
from itertools import permutations
nums = [1,2,3,4]
perm = list(combinations(nums, 2))
#[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
from itertools import permutations
nums = [1,2,3,4]
combi = list(combinations(nums, 2))
#[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
출처