본문 바로가기

전체보기141

[BOJ] 11000 강의실 배정 입력된 일정들을 겹치지 않게 구성하기 위해 필요한 강의실의 최솟값을 구하는 문제이다. 처음엔 queue로 풀고, 구성하지 못한 경우 뒤로 넘기는 방식을 선택했는데 이렇게 하니 worst case에서 시간복잡도가 O(n^2)가 되어 버린다. 생성된 방들의 일정 중 가장 나중에 끝나는 일정의 시간만 저장하고, 그것들을 비교하면 되는데, 방의 갯수가 늘어나게 될 때 모든 방을 불필요하게 비교하지 않아도 Priority queue로 구성하게 되면, 가장 일찍 끝나는 방의 경우만 살피면 되기 때문에 시간 복잡도를 n에서 logn으로 줄일 수 있게 된다. 고로 priority-queue엔 가장 늦게 끝나는 스케줄의 끝나는 시간만 넣어놓으면 된다. #include #include #include #include #i.. 2020. 4. 17.
리눅스 개념 및 명령어 3 - Managing Software 1. Linux kernel - 리눅스 OS의 메인 컴포넌트이며, 하드웨어와 프로세스 간 Interface로서의 역할을 한다. - OS 내부에 존재하며 하드웨어의 주요 기능들을 제어함. 2. Linux kernel의 역할 - Memory Management: 메모리가 얼마나 사용되었는지 추적한다. - Process Management: 어떤 프로세스가 얼마 기간동안 CPU를 사용하는지에 대해 결정 - Device drivers: 하드웨어와 프로세스 간 조정 및 통역을 해줌 - System calls and security: 프로세스로부터 요청을 받아 특정 역할을 수행한다. 3. ps [options] : 현재 실행중인 Process의 목록을 보여준다. 보면, tony의 ps -af는 PPID가 106번째.. 2020. 4. 17.
리눅스 개념 및 명령어 2 - Linux CL tool 1. cat a b > c (concatenate) - a와 b를 concatenate 하여 c 파일을 생성한다. cat는 만약 하나의 파일만 썼을 때는 cli에 출력해주는 기능을 한다. 2. join a b - 맨 앞의 Field가 같고 정렬 가능한 값일 때 사용한다. - 맨 앞의 중첩된 field는 그대로 두고, 나머지 값을 merge한다. - 주로 csv 파일에 사용될 것 (index가 앞에 붙는 경우) 3. paste a b - 같은 줄의 값을 연이어 붙인다. 4. grep [options] regexp [files] - 특정 regexp에 부합하는 영역을 포함하는 Line을 모두 반환한다. Match 되는 부분은 색칠되어 반환. 2020. 4. 17.
리눅스 개념 및 명령어 1 - Linux CL tool 1. type type은 command가 정확히 어떤 프로그램이 실행되는건지 알려준다. 대신, built-in command인 경우엔 built-in 이라고 안내한다. -a 태그를 붙이면 이름이 같은 모든 커맨드가 등장한다. built-in의 경우 bash에서 따로 구현한 구현체가 있을 수도 있는데, 서로 다른 것이다. 2. Stream 리눅스는 모든 프로그램에 대한 Input, output을 Stream이라고 칭한다. 이러한 Stream을 Linux 명령어로 제어할 수 있다. 이를 제어하는데 주로 Redirect와 Pipe가 사용된다. 3. Redirect > 프로그램의 출력을 포함하는 파일을 생성한다. 만약 기존 파일이 있다면 덮어씌여진다. 덮어쓰는 것이 아니라 추가하고싶으면 >> 를 사용하자. st.. 2020. 4. 16.