전체 글(7)
-
정렬(Sort) 알고리즘 - 선택정렬 SelectionSort (C#)
이번엔 정렬 알고리즘 중에 선택정렬(SelectionSort)에 대해 알아보겠습니다. 선택정렬은 min값을 찾아서 앞에서부터 채워 넣어주는 정렬 알고리즘이라고 생각하시면 됩니다. min값을 먼저 찾아서 첫번째 배열과 바꿔줍니다. 그리고 2번째 배열부터 확인해서 min값을 찾아 2번째와 교환합니다. 이런식으로 모든 정렬이 될 때 까지 진행하는 정렬 알고리즘 입니다. 이렇게 min값을 찾은 다음 비교하여 min값과 교환하는 방식으로 코딩하였습니다. 이 코드를 재귀함수로 바꾸게 되면 아래와 같습니다. 0번 인덱스부터 시작해서 min값을 찾고 가장 작은 값을 0번 인덱스부터 채워넣었습니다. 0번 인덱스부터 차례대로 교환이 이루어진것을 확인할 수 있습니다. 감사합니다.
2022.10.14 -
정렬(Sort) 알고리즘 - 병합정렬 MergeSort (C#)
정렬 알고리즘 중 이번엔 병합정렬(MergeSort)를 알아보겠습니다. 병합 정렬은 두개씩 묶어서 정렬을 하고 병합을 시키는 정렬입니다. 이미지와 같이 두개씩 묶어서 배열을 만들고 정렬을 시켜줍니다. 묶인 배열을 시작과 중간을 나눠서 서로 비교하여 정렬을 합니다. 전부 정렬이 완료되면 아래와 같은 형태로 정렬이 되었습니다. 병합된 정렬을 시작과 중간으로(반으로) 나눠서 다시 정렬합니다. 2와 0을 비교하여 0이 작기 때문에 0이 들어가고 2와 7이 비교가 되며 2가 작으므로 2가 다음으로 들어갑니다. 8과 7을 비교하여 7이 작기 때문에 7이 들어가고 마지막으로 8만 남았기 때문에 8을 넣어줍니다. 이런식으로 분할 해서 정렬 후 병합을 반복하면 최종적으로 정렬이 된 배열이 됩니다. 재귀호출을 하면서 정렬..
2022.10.05 -
정렬(Sort) 알고리즘 - 퀵정렬 QuickSort (C#)
정렬 알고리즘 중 이번엔 퀵정렬(QuickSort)를 알아보겠습니다. 퀵 정렬은 하나의 기준(pivot)을 정해서 기준보다 작으면 왼쪽, 크면 오른쪽으로 보내면서 정렬하는 방식입니다. 우선 가운데 숫자를 기준으로 잡고 왼쪽과 오른쪽으로 나눕니다. start인 8이 privot인 6보다 크기 때문에 오른쪽으로 가야하므로 교환대상입니다. end인 1도 pivot인 6보다 작기 때문에 왼쪽으로 가야하므로 교환대상입니다. 이렇게 8과 1을 swap하였습니다. 그 후 교환대상이 나올때까지 Start와 End를 이동시켜줍니다. 다시 7과 5를 교환시켜주고 다시 이동을 하면 이번엔 6과 3이 교환대상입니다. End와 Start가 지나치게되면 루프를 종료합니다. 그리고 Start를 pivot으로 파티션을 나누고 반복합..
2022.09.29 -
정렬(Sort) 알고리즘 - 버블정렬 BubbleSort (C#)
정렬 알고리즘에서 가장 쉽고 기초적인 정렬방법입니다. 두 수를 비교해서 큰 수를 뒤로 보내는 방식입니다. 그림처럼 8과 2를 비교하여 앞의수가 더 크기 때문에 8과 2를 바꿔주고, 다음 8과 0을 비교해서 앞의 수가 더 크기 때문에 8과 0을 바꿔주면서 계속 비교하면 됩니다. 10개의 데이터를 비교할 때 두 수를 비교하기 때문에 총 9번을 돌면되므로 - 1을 해줍니다. 루프를 한번 돌면 가장 큰 숫자가 맨 뒤에 위치하기 때문에 확정된 데이터에 대해 비교할 필요가 없습니다. 따라서 int last = max - i; 로 확정된 위치를 제외하고 비교를 합니다. 두 수를 비교하고 앞의 수가 더 크다면 둘의 위치를 교환합니다. Swap 함수를 통해 두 수의 위치를 교환해주면 결과는 아래와 같이 나옵니다. 8, ..
2022.09.28 -
Python에서 Excel 파일 읽기
프로그램을 하다보면 외부 데이터를 읽어서 동작하게 하는 작업을 많이 합니다. Excel 파일을 읽어서 출력하는 걸 한번 해보겠습니다. 우선 Python에서 Excel 파일을 다루기 위해 openpyxl라는 외부 라이브러리를 사용하겠습니다. https://openpyxl.readthedocs.io/en/stable/index.html openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.0.10 documentation Install openpyxl using pip. It is advisable to do this in a Python virtualenv without system packages: Warning..
2022.09.23 -
Visual Studio Code 설치
Visual Studio Code를 설치해보겠습니다. Python, Flutter, Golang 등 여러 프로그램 언어를 코딩할 때 주로 쓰는 IDE(Integrated Development Environment, 통합 개발 환경) 입니다. Visual Studio 2022와 마찬가지로 마이크로 소프트 홈페이지에서 Visual Studio Code를 다운받습니다. https://visualstudio.microsoft.com/ko/ Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기 Visual Studio 개발 도구 및 서비스를 사용하면 모든 개발자가 모든 플랫폼 및 언어로 앱을 쉽게 개발할 수 있습니다. 무료로 어디서나 코드 편집기 또는 IDE를 사용하여 개발하세요. ..
2022.09.23