본문 바로가기
728x90

프로그래밍 언어73

[Bash/Shell script] Sort 함수 정리 Sort 함수 sort는 텍스트로 된 파일의 행 단위 정렬을 할 때 사용하는 명령어이다. 이 명령어를 이용하면, 프로그램, 쉘 프로그램 등의 입력 값으로 사용되는 데이터를 직접 정렬 또는 편집할 때 편리사게 사용할 수 있다. 1. Syntax of sort sort ※ NOTE 1: 기본값으로써, sort 함수는 주어진 텍스트 파일을 오름 차순으로 정렬한다. ※ NOTE 2: sort 명령어는 숫자를 문자로 인식하고 표준 문자 정렬을 한다. - 따라서, 숫자로 정렬하기 위해선 -n 옵션을 사용해야 한다. ※ 옵션 옵션 설명 -r 내림 차순 정렬 -k 텍스트 파일을 번째 필드를 기준으로 정렬 -u 중복된 내용을 하나로 취급하여 유일 정렬 -t 필드 구분자로 를 사용한다 -n --numeric-sort 숫자.. 2021. 2. 5.
[C 언어] 헤더파일 및 분할 컴파일 정리 A. 헤더 파일 1. 헤더 파일(Header file)이란? • 일반적으로 C/C++언어에서는 명령어 및 함수를 정의하고 있는 별도의 파일 (헤더 파일)을 포함한다. • 헤더 파일에서는 다음과 같은 정보를 포함한다. - 사용자가 정의한 구조체 및 공용체의 정의, 데이터형의 정의, 클래스, 함수, 매크로 등의 프로토 타입 - 그러나 실제 함수 코드는 헤더 파일이 아니라 컴파일된 코드로 구성된 라이브러리 파일에 들어있음 • 대표적인 헤더 파일 - stdio.h : (Standard Input/Output) 표준 입출력에 관련된 함수들을 정의 - math.h : sqrt(), pow(), abs() 등의 수학 관련 함수 정의 - stdlib.h : 표준 라이브러리 함수 정의 2. 왜 헤더 파일을 사용해야 하는.. 2021. 2. 5.
[C 언어] 2차원 동적 배열 만들기 1차원 동적 배열을 만드는 것은 단순히 다음과 같이 malloc()함수를 이용하면 된다. ex) 만약 사용자로부터 임의의 정수를 받은 후, 그 수의 크기에 해당하는 배열을 만든다고 가정을 하자. int input_n; scanf("%d", &input_n); int *array = (int *)malloc(sizeof(int) * input_n); • (int *)malloc(sizeof(int) * input): int 형의 input_n 칸짜리 배열을 메모리에 할당 후, 해당 주소를 반환 2차원 배열을 동적으로 할당하는 경우, 아래와 같이 크게 두 가지의 이슈가 있다. • 배열의 원소가 인접해야하는지 • 배열이 가변적이어야 하는지 2차원 동적 배열 만들기 ※ 2차원 동적 배열 만들기 요약 (1) 이중.. 2021. 1. 31.
[C 언어] fopenmp - 스레드 하나만 사용하는 경우 c로 작성한 소스코드를 컴파일을 하고 링크를 하여 실행 프로그램을 만든 후, 해당 프로그램을 실행시키니 코어 하나만 사용을 하는 문제가 발생하였다. 확인을 해보니 컴파일시 -fopenmp를 링크를 걸어주지 않음으로 발생한 문제였다. 다행히 나와같은 문제점을 올린 사람이 있어서 해결방법을 쉽게 찾을 수 있었다 [1]. 아래는 위 링크의 코드 및 컴파일, 링크의 예시이다. 파일명: main.c #include #include int main() { #pragma omp parallel { fprintf(stderr, "thread %d\n", omp_get_thread_num()); } return 0; } (1) 컴파일: $gcc main.c -c -fopenmp (2) 링크: $gcc main.o -o .. 2021. 1. 30.
[C 언어] 계층 구조의 하위 디렉토리 생성 1. Unix/Linux OS Unix계열의 환경에서 C언어로 디렉토리를 만드는 경우에 mkdir() 함수를 이용한다 • Prototype: int mkdir (const char *dirname, mode_t mode) • 헤더 파일: • *dirname: 생성할 디렉토리의 경로 및 이름 • mode: 접근 권한 지정* • 반환값 (1) 0 : 디렉토리를 정상적으로 생성함 (2) -1: 디렉토리를 생성 실패 - 만들려는 폴더가 이미 존재할 경우: errno → EEXIST - 폴더가 부정확한 경우: errno → ENOENT 2. Windows 윈도우 계열에서도 마찬가지로 동일한 함수인 _mkdir()을 이용해서 디렉토리를 만든다. 하지만, 헤더파일이 다르다. (1) mkdir()의 헤더 파일: (2).. 2021. 1. 30.
[Mathematica] 리눅스에 설치 및 여러 계정들이 모두 사용할 수 있게 설정하기 학부생때부터 Mathematica를 사용한지 약 5년 이상이 되었고, 지금까지 Window OS에서 사용을 하였다. 하지만, 최근에 랩실에서 클러스터의 마스터 서버에 설치할 Linux OS 용을 구매했다. Linux OS에 설치를 하는 것은 아래의 Wolfram 홈페이지를 참조하면 된다. support.wolfram.com/ko/12453 Wolfram 지원의 빠른 답변 제품 동기화, 구매, 고장 진단, 업그레이드 등 Wolfram 제품에 관한 일반적인 해결책이 있습니다. support.wolfram.com 설치과정을 요약하면. (1) mathematica 홈페이지에서 구매한 프로그램을 다운받는다. ( 리눅스 버전의 경우, .exe파일이 아닌 Shell script(.sh)로 되어있다.) (2) 해당 프.. 2021. 1. 30.
[CUDA] printf not working 1) The first way I tried to resolve my problem: cudaDeviceSynchronize() Some posts and blogs suggest using cudaDeviceSynchronize() as a solution for not working printf() in CUDA [1][2]. The point of their suggestion is that the host code* is over before receiving printf() message from the device codes**. So, before ending the host code, by synchronizing the device codes (cudaDeviceSynchronize), .. 2021. 1. 5.
[Python] set 자료형 정리 1. Python – Set/fronzenset • set 자료형은 파이썬 2.3부터 지원을 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. • 파이썬에서는 set과 fronzenset이란 두 가지 형태로 집합 자료형을 제공한다. - set: 변경이 가능한 집합 - fronzenset: 변경이 불가능한 집합 ※ fronzenset은 변경이 불가능한 집합이기 때문에, 요소를 추가하거나 삭제하는 연산 및 Method를 사용할 수 없다. • Set 자료형을 사용하는 이유: 집합 내의 요소들의 교집합, 합집합, 차집합을 구할 때, 유용하게 사용될 수 있음 2. Set의 특징 • 순서가 없음 - 집합에서는 순서가 없기 때문에, 어떤 값이 먼저 나올지 알 수 없음 - Set에서는 순서가.. 2021. 1. 1.
[Python] 리스트 중복 제거 (순서 유지 X, 순서 유지 O) Python에서 리스트의 중복을 제거하는 경우, 크게 두 가지 경우를 생각해볼 수 있다. • 리스트의 중복만을 제거하는 경우 ( 기존 리스트의 순서는 고려 x) • 리스트의 중복을 제거하되 기존 리스트의 순서는 유지 문제의 예시로써, 아래와 같이 중복이 있는 데이터가 존재한다고 가정하자. >>> dup_list = ['1','3','6','5','5','3','4','4','3','2','2','2','1'] 1. 리스트의 중복만을 제거하는 경우 기존 리스트의 순서는 고려하지 않고 중복만을 제거하는 경우에는 Python의 set 자료형을 이용하면 된다. ※ Python의 set 자료형의 특징은 아래와 같다. 1) 중복을 허용하지 않음 (Removing Duplicated) 2) Set 내부에 있는 값들은.. 2020. 12. 29.
728x90