[PS] BOJ 23969 / 알고리즘 수업 - 버블 정렬 2
문제 링크: https://www.acmicpc.net/problem/23969
Thumbnail: Photo by Soop Kim / Unsplash
버블 정렬 알고리즘을 이해한다면 쉽게 풀이할 수 있습니다.
풀이
버블 정렬 알고리즘의 의사 코드는 문제에서 보여주니, 이를 적절히 구현하면 됩니다. 이후, 배열 내 두 수의 교환이 일어날 때 마다 교환 횟수를 세어 K에 도달할 때 버블 정렬을 종료하고 배열의 상태를 출력해주면 됩니다.
코드
from sys import stdin
N, K = map(int, stdin.readline().split())
A = list(map(int, stdin.readline().split()))
cnt = 0
for last in range(N-1, 0, -1):
for i in range(last):
if A[i] > A[i+1]:
A[i], A[i+1] = A[i+1], A[i]
cnt += 1
if cnt == K:
break
if cnt == K:
break
if cnt < K:
print(-1)
else:
print(" ".join(map(str, A)))
solution.py