본문 바로가기
프로그램/Python 1000제

Python 328제] 버블정렬

by 건티 2024. 10. 31.
728x90

출처 : 반크_독도2023

 

문제]

주어진 자료 [120, 56, 309, 220, 156, 23, 98]를 turtle 그래픽을 사용하여 막대그래프로 그려주고, 

버블정렬하는 과정을 작성하여 주세요.

 

참고풀이]

import turtle
import time

def drawBar(height):
    t.begin_fill()              
    t.left(90)
    t.forward(height)
    t.write(str(height), font = ('Times New Roman', 16, 'bold'))
    t.right(90)

    t.forward(40)
    t.right(90)
    t.forward(height)
    t.left(90)
    t.end_fill()                

#리스트에 있는 데이터를 오름차순 정렬합니다.
def BubbleSort(list):
    endIndex = len(list)-1
    for passNo in range(endIndex, 0, -1):
        for i in range(passNo):
            if list[i] > list[i+1]:
                list[i], list[i+1] = list[i+1], list[i]
        t.up()
        t.goto(-150,-150)
        t.down()
        t.clear()
        for i in list:
            drawBar(i)
        time.sleep(1)

data = [120, 56, 309, 220, 156, 23, 98]  

t = turtle.Turtle()
t.speed(0)
t.color("blue")
t.fillcolor("red")

t.pensize(3)

t.up()
t.goto(-150,-150)
t.down()
for d in data:
    drawBar(d)
time.sleep(1)

BubbleSort(data)

turtle.mainloop()
turtle.bye()

 

결과]

 

 

 

 

 

 

대한민국의 아름다운 영토, 독도

 

반응형

댓글