본문 바로가기
반응형

전체 글94

[C 언어] 버블소트(bubble sort)를 이용한 정렬 사용 예시 (example code) 안녕하세요, 오늘은 버블 소트 예시에 대해 포스팅 해보도록 하겠습니다. 버블 정렬은 시간복잡도가 O(n^2)로 그다지 효율적인 알고리즘은 아닙니다. 그럼에도 많이 사용되는 이유는 이해하기 쉬운 알고리즘과 낮은 구현 난이도 때문이 아닐까 합니다. C 언어 기준으로 예제 코드 및 결과를 작성해보도록 하겠습니다. 버블 소트를 이용한 배열 정렬하기 위의 코드는 오름차순 기준으로 작성한 코드입니다. #include // bubble sort prototype void bubble_sort(int *, int); int main() { int arr[] = {5, 2, 3, 1, 4}; int arr_cnt = 5; printf("Before sorting the array\n"); for (int i = 0; i 2021. 11. 24.
[C 언어] 함수 포인터를 이용한 콜백함수(callback function) 사용 예시 (example code) 안녕하세요, 오늘은 알아두면 유용한 callback 함수 사용 예시에 대해 포스팅 해보도록 하겠습니다. 콜백 함수란 무엇인가 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다. (출처: 위키백과) 콜백 함수는 주로 특정 이벤트가 발생했을 때, 사용자가 원하는 기능을 수행하도록 하기 위해 사용합니다. 하지만 특정 이벤트가 아니더라도 함수 내에서 사용자가 원하는 기능을 수행하기 위해 사용하기도 합니다. 콜백 함수 사용 예시 아래는 C 언어로 작성한 콜백 함수 등록 및 사용 예시 코드입니다. #inclu.. 2021. 11. 23.
[리눅스 우분투] gcc 컴파일러 설치하기 (Linux ubuntu) 안녕하세요, 오늘은 리눅스 우분투에서 컴파일러를 설치하는 방법에 대해 포스팅 해보도록 하겠습니다. gcc 컴파일러 설치하기 우선 현재 우분투에 gcc 컴파일러의 설치 유무는 아래의 명령어를 이용해 확인할 수 있습니다. gcc --version 설치되어있는 경우 아래와 같이, 그렇지 않은 경우 아래와 같이 나옵니다. gcc 컴파일러는 build-essential 패키지를 이용해 설치할 수 있습니다. build-essential은 gcc, g++, make 등 여러 컴파일러를 포함하는 패키지입니다. 아래의 명령어를 터미널에 차례대로 입력해주세요. sudo apt update sudo apt install build-essential 설치가 완료되면 gcc 컴파일러를 사용할 수 있습니다. 물론 gcc 뿐만 아.. 2021. 11. 22.
[C 언어] 퀵소트(qsort)를 이용한 배열, 구조체 정렬 사용 예시 (example code) 안녕하세요, 오늘은 표준 라이브러리인 퀵소트 함수 qsort 사용 예시에 대해 포스팅 해보도록 하겠습니다. 퀵소트는 평균적으로 O(nlogn)의 시간복잡도를 갖는 매우 효율적인 알고리즘입니다. 직접 구현하기는 까다롭지만 라이브러리를 제공하기 때문에 사용하기 무척 편리합니다. qsort를 사용하기 위해서는 C 에서는 stdlib.h, C++에서는 cstdlib 헤더 파일을 포함(include) 해야 합니다. C 언어 기준으로 예제 코드 및 결과를 작성해보도록 하겠습니다. 배열 정렬하기 위의 코드는 오름차순 기준으로 작성한 코드입니다. 내림차순으로 하려면 cmpfunc 함수에서 return을 (*(int *)b - *(int *)a); 로 하면 됩니다. #include #include // to use qs.. 2021. 11. 21.
[C 언어] 윈도우에서 gcc 컴파일러 설치, 환경 변수에 경로 추가하기 (Windows) 안녕하세요, 오늘은 윈도우에서 gcc 컴파일러를 설치 및 환경변수에 경로 추가하는 방법에 대해 포스팅 해보도록 하겠습니다. gcc 컴파일러 설치하기 윈도우용 GCC 컴파일러 설치 파일은 https://www.mingw-w64.org/ 에서 다운받을 수 있습니다. 해당 사이트에 접속 후 다운로드(Downloads)로 들어가 주세요. https://www.mingw-w64.org/downloads/ 로 바로 접속하셔도 무방합니다. 다운로드로 들어가면 각 운영체제에 맞는 설치 파일을 다운받을 수 있습니다. 아래로 내려가다 보면 윈도우용 gcc 컴파일러 설치 파일을 발견할 수 있습니다. 클릭 후 다운받아주세요. 다운받은 설치 파일을 이용해 gcc 컴파일러를 설치해주세요. Architecture는 64비트 윈도우.. 2021. 11. 20.
[리눅스 우분투] 가상머신(VirtualBox) 화면 크기 키우기 안녕하세요, 오늘은 오라클 가상 머신인 VirtualBox에서 화면을 키우는 방법에 대해 포스팅 해보도록 하겠습니다. 처음 VirtualBox를 설치 후 OS를 설치하면 아래와 같이 화면이 가득 차지 않는 것을 볼 수 있습니다. 해결 방법 디스플레이 설정을 통해 화면 크기를 키워줄 수 있습니다. 우선 OS를 종료 후 설정 -> 디스플레이로 들어가주세요. 디스플레이에서 그래픽 컨트롤러가 VMSVGA로 설정되어 있을 텐데요, VMSVGA 대신 VBoxVGA (또는 VBoxSVGA)를 선택해주세요. 설정 / 저장 후 다시 OS를 실행하면 아래와 같이 화면이 커진 것을 확인할 수 있습니다. VBoxVGA, VMSVGA, VBoxSVGA 차이점 VBoxVGA, VMSVGA, VBoxSVGA의 차이는 아래와 같다고.. 2021. 11. 19.
[리눅스 우분투] 한/영 키 인식 안되는 문제 해결하기 (Linux ubuntu) 안녕하세요, 오늘은 리눅스 우분투에서 한/영키 인식이 안 되는 현상 해결하는 방법에 대해 포스팅 해보도록 하겠습니다. 한/영 키 인식시키기 (한글 입력하기) 우분투 설치 후 한글팩을 설치해도 한/영키가 인식되지 않아 한글 입력에 어려움을 겪는 일들이 종종 발생하는데요, 해결 방법은 생각보다 간단합니다. 우선 설정 -> 지역 및 언어를 선택해주시면 아래와 같이 입력 소스에 한국어(Hangul)뿐만 아니라 한국어(101/104키 호환)가 함께 있는 것을 볼 수 있습니다. 한영키가 인식되지 않는 이유는 바로 한국어(101/104키 호환)가 함께 설정되어 있어 한국어(Hangul)에서 설정된 한/영키가 제대로 인식되지 않아서입니다. 때문에 한국어(101/104키 호환)를 삭제해주어야 합니다. 휴지통 모양의 아이.. 2021. 11. 18.
[리눅스 우분투] 시스템 프로그램 오류 (watchdog: BUG: soft lockup) 해결하기 (Linux ubuntu) 안녕하세요, 오늘은 리눅스 우분투에서 시스템 프로그램 오류를 해결하는 방법에 대해 포스팅 해보도록 하겠습니다. 우분투를 시작할 때마다 아래와 같은 팝업 메시지 때문에 골치 아팠던 적이 한 번씩 있을 텐데요, 아래 오류의 원인은 무척 다양합니다. (오류 보고 -> 자세히 보기에서 확인할 수 있음) 시스템 프로그램 오류 원인 저의 경우 watchdog: BUG: soft lockup 라는 시스템 프로그램 오류 때문에 계속해서 팝업 메시지가 나오고 있더라고요. 하드웨어의 호환성, 엄밀히 말하면 그래픽 카드 (GPU) 호환성 문제 때문에 발생하는 원인이라고 합니다. 시스템 프로그램 오류 해결 방법 해결 방법은 간단합니다. 우선 grub 파일을 열어주세요. $ sudo vi /etc/default/grub 그 후.. 2021. 11. 17.
[티스토리] 구글 서치 콘솔 오류 해결하기 (클릭할 수 있는 요소가 너무 가까움, 콘텐츠 폭이 화면 폭보다 넓음) 안녕하세요, 오늘은 구글 서치 콘솔에서 모바일 사용 편의성 오류 해결하기에 대해 포스팅 해보도록 하겠습니다. (클릭할 수 있는 요소가 너무 가까움, 콘텐츠 폭이 화면 폭보다 넓음) 최근 게시한 게시물들을 구글 서치 콘솔에 등록하기 위해 접속했더니 모바일 사용 편의성 오류를 만나게 되었습니다. 상세정보를 클릭해보니 가장 처음에 올린 글에서 문제가 발생했네요. 구글에서는 사용자 친화적인 글을 선호하기 때문에 위의 오류를 빠르게 해결하지 않으면, 추후 검색 순위에서 밀린다는 이야기가 있습니다. 하나씩 해결해보도록 하겠습니다. 클릭할 수 있는 요소가 서로 너무 가까움 글의 간격이 충분하지 않을 때 나오는 오류입니다. 해결법으로는 엔터(Enter)를 많이 사용해주는 방법과 스킨 편집의 CSS에서 줄 간격을 수정해.. 2021. 11. 16.
[리눅스 우분투] VS Code 설치, 삭제하기 (Linux ubuntu) 안녕하세요, 오늘은 리눅스 우분투에서 VS Code 설치, 삭제하는 방법에 대해 포스팅 해보도록 하겠습니다. VS Code는 IDE는 아니지만 일단 가볍고 편의성과 확장성 때문에 웹, 앱, 그리고 임베디드 등 다양한 분야의 개발자들에게 사랑받는 개발 툴인데요, 윈도우에서 뿐만 아니라 리눅스에서도 사용 가능합니다. VS Code는 IDE가 아니기 때문에 빌더가 내장되어 있지 않습니다. 때문에 빌드를 하기 위해선 별도의 컴파일 환경을 구축이 필요한데요, 이는 다음에 다루도록 하겠습니다. VS Code 설치하기 VS Code 설치 방법은 무척 간단합니다. 우선 리눅스 우분투에서 웹 브라우저로 vscode 공식 홈페이지로 들어간 후 설치 파일(.deb)을 다운받아주세요. 공식 홈페이지(https://code.v.. 2021. 11. 15.
반응형