[백준] 1049 문제링크
C++ 코드
💡 버블소트를 단계별로 진행하면서 , 만약 정렬이 됐다면 break
💡 몇 단계만에 배열이 정렬되었는지 구하는 코드
문제를 제대로 읽는게 핵심
c++ 코드를 그대로 옮기면 시간 초과가 난다는 것
A = [(int(input()),i)for i in range(N)]
배열의 원소들을 입력받을 때 해당 인덱스 값과 함께 입력받는다
if cnt < A[i][1]-i:
cnt=A[i][1]-i
기존 인덱스와 바뀐 인덱스의 차이가 가장 큰 값을 저장한다
Bubble Sort
인접한 두 수를 비교해서 뒤에 수가 더 작으면 위치를 바꾸는 정렬 알고리즘
→ A[i][1]-i
이 값이 음수가 나온다는 것 ? 오른쪽으로만 이동했다는 것
→ 하나라도 오른쪽으로 갔다는 것 ? 다른 하나는 왼쪽으로 이동했다는 것
: 가장 큰 값이 단계의 횟수를 나타낸다는 것 이다