SWEA 1244번 2일차 최대상금

강준호·2023년 11월 15일
0

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15Khn6AN0CFAYD&categoryId=AV15Khn6AN0CFAYD&categoryType=CODE&problemTitle=&orderBy=RECOMMEND_COUNT&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

초고

# 주어진 횟수만큼 선택정렬
# 예외는 횟수가 남았을때.
# 횟수가 남는다면 맨 마지막 두개를 와리가리
t = int(input())
for _ in range(t):
    nums, c = input().split()
    c = int(c)
    li = list(map(int, nums))
    flag = True
    while c > 0 and flag:
        for i in range(len(li) - 1):
            maxi = i

            for j in range(i + 1, len(li)):
                if li[maxi] <= li[j]:
                    maxi = j

            li[maxi], li[i] = li[i], li[maxi]
            c -= 1
            if c <= 0:
                flag = False
                break
    if c>0:
        li[-1], li[-2] = li[-2], li[-1]
        c -= 1
    print(li)

선택정렬을 이용해 풀려고했다.=> 실패

에러

  • 다른 테스트들은 통과하지만 32888 2 의 케이스가 계속 막힌다.
  • 같은 숫자가 여러개 있으면 지정된 스왑 횟수 이후에 가능한 가장 큰 숫자를 보장하지 않는다..ㅜ

일단 보류..

0개의 댓글