-
[알고리즘] 버블정렬알고리즘/정렬 2019. 5. 17. 16:34
목표 기초적인 정렬 알고리즘 중 버블 정렬 알고리즘에 대해 이해한다. 기초적인 정렬 알고리즘 중 버블 정렬 알고리즘을 c로 구현한다. 버블 정렬 알고리즘이란? 버블 정렬은 인접한 두개의 원소를 비교하여 정렬 구현하기는 쉽지만 성능은 매우 떨어진다. 버블 정렬의 예시 버블 정렬의 특징 정렬되어 있는 경우에도 교환이 일어난다. 교환작업이 매번 일어나 복잡하기 때문에 거의 쓰이지 않는다. 버블 정렬 알고리즘의 코드 구현(c++) #include using namespace std; int main(){ int n; cin >> n; int a[n]; for(int i = 0 ; i > a[i]; } for(int j = n-1; j >= 0; j--){ for(int i = 0 ; i < j ;i++){ if..
-
[Unix] 시그널 처리운영체제/Unix 2019. 5. 14. 18:34
시그널 시그널 시그널 처리 시그널 보내기 시그널과 비지역 점프 목표 시그널 처리기에 대해 이해한다. 간단한 예제들을 이용해 시그널을 처리해본다. 시그널 처리기란? signal() 시그널에 대한 처리 함수를 지정 시그널을 처리하는 함수가 존재 signal() 시스템 호출 #include signal(int signo, void (*func)()) signo는 앞의 포스팅에서 설명한 시그널의 종류 func는 실행할 함수 - SIG_IGN : 시그널 무시 - SIG_DFL : 기본 처리 예제 #include #include #include #include void alarmHandler(); /* 알람 시그널을 처리한다. */ int main( ) { int sec = 0; signal(SIGALRM,alar..
-
[Unix] 시그널운영체제/Unix 2019. 5. 14. 18:03
시그널 시그널 시그널 처리 시그널 보내기 시그널과 비지역 점프 목표 시그널의 개념에 대해 이해한다. 시그널의 필요성 및 종류에 대해 알아본다. 시그널이란? 시그널 - 신호(signal) 위험한 상황에 일반적으로 신호를 보낸다. 프로그램 실행 중 예기치 않은 사건이 발생할 때 프로세스에게 알려주는 특별한 메시지 또는 소프트웨어 인터럽트 예기치 않은 사건 : 프로그램이 무한루프에 빠져나오질 못함. 특별한 메시지, 소프트웨어 인터럽트인 : 를 눌러 프로그램 강제 종료 이때 는 강제 종료 시그널 시그널 종류 SIGFPE : SIGnal + Floating-Point Exception - 0으로 나누기, 부동 소수점 오류 SIGPWR : SIGnal + PoWeR - 정전 시 SIGINT : SIGnal + IN..
-
[미세마스터] 개발일지 #3개발일지 2019. 5. 13. 21:02
목표 측정소 변경 버그 오류 해결 세부 목표 지도 삽입(구글) 미세 뉴스 및 지도 데이터 요청 요류 구현 지도 삽입 https://github.com/react-native-community/react-native-maps 특이사항 다음 지도 사용 시 알 수 없는 많은 버그로 인해 사용 안 함 측정소 변경 기능 지도 클릭 시 onPress event, Marker를 사용하여 측정소 변경 기능 추가 버그 오류 해결 Rest API 호출 시 : 잘못된 호출로 인한 오류 추가 구현 Redux를 이용한 데이터 관리 느낀 점 상태 값 관리 가 절실히 필요하다. 측정소 값이 변경 시 모든 컴포넌트 동시 데이터 변경이 필요 적용점 생각 없이 개발했다. 효율성이라던지, 왜 쓰는지에 대한 깊은 고민 없이 되니까 했다. ..
-
[Unix] 파일 상태 정보운영체제/Unix 2019. 5. 8. 22:18
파일 시스템 파일 시스템의 구현 파일 상태 정보 디렉터리 링크 5.2 파일 상태 정보 파일 상태 파일에 대한 모든 정보 파일 타입, 접근 권한, 링크수, 소유자와 사용자 ID, 그룹, 파일 크기, 최종 수정시간, 파일 명 등 $ls -l 하면 된다 drwxr_xr_x 2 ckdtjs505 other 512 4월 8일 21:59 blog 파일 타입 링크수 사용자ID 그룹ID 파일크기 최종 수정시간 파일 이름 파일의 상태 정보에 대해 간단하게 알아보았다. 파일 상태 정보의 모든 내용은 i-node가 가지고 있다는 것을 다시 한번 명심하자. 파일 타입 메크로 함수 - 메크로 함수 선언 위치 : /usr/include/sys/stat.h 간단하게 메크로 함수를 이해해보자. 비트 연산과 8진법이 있어서 처음에 이..
-
[Unix] 파일 잠금 함수 : fcntl()운영체제/Unix 2019. 5. 8. 22:06
파일 및 레코드 잠금 목차 파일 및 레코드 잠금 fcntl() 함수 lockf() 함수 목표 fcntl() 함수를 이해한다 fcntl() 함수를 사용하여 잠금을 구현한다 fcntl() 함수란? 파일 및 레코드 잠금을 구현하는 시스템 호출 읽기 잠금 : 여러 프로세스가 공유 가능한 읽기 잠금 쓰기 잠금 : 한 프로세스 만이 가질수 있는 쓰기 잠금 fcntl() 함수 설명 #include #include #include int fcntl(int fd, int cmd, struct flock *lock); 매개변수 fd : 잠금이 되는 파일 디스크립터 cmd : 잠금 검사 혹은 잠금 설정 (F_GETLK, F_SETLK, F_SETLKW) F_GETLK : 잠금 복사 F_SETLK : 잠금 설정 혹은 해제 F..
-
[Unix] 파일 및 레코드 잠금운영체제/Unix 2019. 5. 8. 17:42
파일 및 레코드 잠금 목차 파일 및 레코드 잠금 fcntl() 함수 lockf() 함수 목표 파일 및 레코드 잠금의 필요성과 개념을 이해한다. 잠금의 두 가지 종류 권고 잠금과 강제 잠금에 대해 알아본다 파일 및 레코드 잠금의 필요성? 잠금을 사용하지 않은 경우 A라는 사람과 B라는 사람이 더블 통장을 쓴다. 더블 통장에는 100만 원이 들어가 있다. A라는 사람이 돈이 생겨 10만원을 입금하려 한다. B라는 사람은 돈을 사용할 일이 생겨 10만 원을 출금하려 한다. A가 통장에 접근하여 잔액 100만원을 읽는다. B도 통장에 접근하여 잔액 100만원을 읽는다. A는 100만원에 10만 원을 입금하여 잔액이 110만 원이 된 것을 확인했다. B는 A가 입금하기 전에 잔액을 읽었으므로 100만원에 10만 ..
-
[알고리즘] 병합정렬알고리즘/정렬 2019. 5. 8. 00:21
목표 고급 정렬 알고리즘 중 병합 정렬 알고리즘에 대해 이해한다. 고급 정렬 알고리즘 중 병합 정렬 알고리즘을 c++로 구현한다. 병합 정렬 알고리즘이란? 병합 : 병합하다. 합쳐지다는 의미를 가진다. 정렬 : 항목들을 체계적으로 정리하는 과정 어떠한 자료구조를 합쳐서 정렬하는 방법 분할 정복 알고리즘의 하나이다 병합 정렬 알고리즘의 순서 분할 : 입력을 반으로 나눈다. 정복 : 반으로 나눈 전반부와 후반부를 독립적으로 정렬한다. 결합 : 정렬된 두 부분을 병합하여 정렬한다. 병합 정렬의 예 병합하는 과정 결합하는 구체적인 과정 병합 정렬 c++ 코드 #include #define MAX 8 using namespace std; int sort[MAX]; void mergin(int ary[], int ..