파이썬에 입문했다. 그렇다고 다른 프로그래밍언어를 할 줄 아는 것도 아니다. 프로젝트라고 하기 좀 민망하지만 누구의 도움도 받지 않고 만들어낸 내 첫 프로젝트를 공유한다. ㅎㅎ

알고리즘 과목을 수강하다가 정수로 이루어진 수의 모임을 작은 수 부터 큰 수로 정렬하는 방법을 배웠다. 엑셀의 오름차순 정렬과 같은 것이다. 평소에 아무 생각없이 해왔던 것을 직접 프로그래밍으로 실현하려니까 시간이 꽤 걸렸다. 이 프로젝트에서는 '리스트'와 'for 반복문'을 사용하였다. 수열 안에 숫자가 n개 가 있다면 n x (n-1)/2번 비교해야 답이 나온다.

100개가 들어있는 수열이라고 가정하면 구체적으로 실현 방식은 다음과 같다.

첫 번째 수두번째 수를 비교한 후 첫번째 수가 더 크면 아무 작업도 하지 않지만 두번째 수가 더 크다면 위치를 바꾼다.

그 다음 첫 번째 수세 번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 세 번째 수가 더 크다면 위치를 바꾼다.

그 다음 첫 번째 수번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

.....

그 다음 첫 번째 수번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

....

그 다음 두 번째 수번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

그 다음 두 번째 수번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

그 다음 두 번째 수다섯 번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

....

그 다음 세 번째 수네 번째를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

그 다음 세 번째 수다섯 번째를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

....

그 다음 아흔 아홉 번째 수백 번째 수를 비교한 후 첫 번째 수가 더 크면 아무 작업도 하지 않지만 네 번째 수가 더 크다면 위치를 바꾼다.

아래는 유저로 부터 수열의 크기와 정수를 받아서 오름차순으로 정렬하는 파이썬 코드이다.


*예외처리는 좀 있어보이려고 넣어보았다. ㅎㅎㅎ


아래 사진은 결과다.

몇개의 정수가 필요한지 물어본다.

5개 넣겠다고 입력하고 5개 정수를 타입한다. 일부러 크기를 뒤죽 박죽으로 넣어 본다.

그럼 결과가 나온다. 오리지날 수열(9,3,5,6,1)이 나오고 비교수행 숫자(10)가 나오고 오름차순으로 정렬된 수열(1,3,5,6,9)가 나온다.

성공이다.

이렇게 프로젝트1을 무사히 끝냈다. 후후

벌써 프로젝트2가 기대된다. 후후

+ Recent posts