2947) 나무조각

CHOISUJIN·2024년 9월 12일
0

Baekjoon

목록 보기
6/10
post-thumbnail
post-custom-banner

📌 문제 탐색하기

  • 1~5 숫자 나무조각을 오름차순으로 정렬
  • 입력 받은 순서에서 오름차순으로 정렬되는 과정 출력
    - 첫번째 조각 > 두번째 조각 -> swap
    • 두번째 조각 > 세번째 조각 -> swap
    • 세번째 조각 > 네번째 조각 -> swap
    • 네번째 조각 > 다섯번째 조각 -> swap
    • 1,2,3,4,5가 아니라면 다시 반복
  • 단, swap 될 때만 출력

가능한 시간복잡도

시간 제한 : 1초

이중 for문의 시간복잡도는 O(N^2)
-> N이 매우 클 경우 효율적인 알고리즘은 아니지만, N은 5로 작으므로 괜찮다.

알고리즘 선택

버블 정렬

📌 코드 설계하기

  1. 문제의 input 받기
  2. 이중 for 문으로 인접한 두 수를 비교해서 앞에 수가 뒤에 수보다 크면 교환 후 리스트 출력 -> 정렬이 완료될 때까지 반복(N:5번)

📌 시도 회차 수정 사항 (Optional)

📌 정답 코드

import sys

# arr = list(map(int, sys.stdin.readline().strip().split()))
arr = [int(x) for x in sys.stdin.readline().strip().split()]

for i in range(5):
    for j in range(5-i-1):
        if(arr[j+1] < arr[j]):
            arr[j+1], arr[j] = arr[j], arr[j+1]
            print(*arr, sep=" ")
profile
매일매일 머리 터지는 중 ᕙ(•̀‸•́‶)ᕗ
post-custom-banner

0개의 댓글