[백준] 1377번 버블 소트

오혜수·2022년 2월 25일
0

코딩 테스트

목록 보기
13/61

링크 : https://www.acmicpc.net/problem/1377

🤔 문제

버블 소트 알고리즘을 다음과 같이 C++로 작성했다.

bool changed = false;
for (int i=1; i<=N+1; i++) {
    changed = false;
    for (int j=1; j<=N-i; j++) {
        if (A[j] > A[j+1]) {
            changed = true;
            swap(A[j], A[j+1]);
        }
    }
    if (changed == false) {
        cout << i << '\n';
        break;
    }
}

위 소스에서 N은 배열의 크기이고, A는 정렬해야 하는 배열이다. 배열은 A[1]부터 사용한다.

위와 같은 소스를 실행시켰을 때, 어떤 값이 출력되는지 구해보자.

🤨 풀이

시간 초과

import sys
input = sys.stdin.readline

n = int(input())
array = [int(input()) for _ in range(n)]

flg = False

for i in range(1, n+2):
    flg = False
    for j in range(n-i):
        if array[j] > array[j+1]:
            flg = True
            array[j], array[j+1] = array[j+1], array[j]
    if flg == False:
        print(i)
        break

0개의 댓글