일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 관계형 모델
- 데이터베이스
- leetcode
- BHS
- 자료구조
- BST
- Transport layer
- Database
- 백준
- STL
- 응용 계층
- 문제풀이
- Embedded
- ps
- baekjoon
- 부트시퀀스
- DB
- swea
- 다익스트라
- Djikstra
- Network
- C++
- boot sequence
- 전송 계층
- Application Layer
- 프로그래머스
- dp
- 임베디드
- 릿코드
- 네트워크
- Today
- Total
목록전체 글 (69)
BOBO's Note

IPC IPC는 Inter-Process Communication의 약자로, 프로세스간 통신하는 방법을 의미한다. 프로세스간 통신이란, 프로세스간 데이터를 주고받는 행위이다. 다양한 IPC 방법이 존재하는데, 대표적인 IPC는 다음과 같다. PIPE Named PIPE Message Queue Shared Memory Memory Map Socket PIPE Half-duplex 통신이다. 다시 말해서 한 프로세스는 write만 다른 프로세스는 read만 가능하다. 한 프로세스가 read, write를 모두 하고 싶으면 파이프를 2개 생성해야 한다. 통신할 프로세스를 명확히 알 때 사용할 수 있다. 같은 PPID를 갖는 프로세스들, 즉 부모 프로세스가 동일한 프로세스끼리만 통신할 수 있다. Named P..
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 풀이 방법 모든 연산 순서 조합을 구해서 각 순서에 대해 연산을 차례대로 수행한 후, 그 중 최소 배열 값을 반환한다. 우선 연산 순서 조합을 구하는 함수는 min_val()이다. K개의 연산에 대해 순서 조합을 구하면 Arr 클래스의 apply_ops() 메소드를 호출해 배열 값을 계산한다. void min_val(int n, Arr& arr){ static boo..
https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 풀이 방법 파이프의 양 끝의 위치와 놓여진 방향을 pipe라는 구조체에 저장한다. struct pos{ int r; int c; pos(int r_, int c_): r(r_), c(c_) {}; }; struct pipe{ pos start; pos end; int dir; pipe(pos start_, pos end_, int dir_): start(start_), e..
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안�� www.acmicpc.net 풀이 방법 주어진 시간 내에 답을 찾기 위해서는 이진 탐색에 DP를 사용해 풀어야 한다. 그리고 std::cin/std::cout 보다는 scanf()/printf()를 사용해야 한다. 찾으려는 수를 key로, 존재 여부를 value로 갖는 unordered_map memo를 선언한다. 그 후, 탐색을 하기 전에 memo를 먼저 살펴봐 데이터가 없는 경..
C++ C++11부터 추가된 튜플은 에 정의되어 있으며, pair를 일반화한 컨테이너로 임의의 형식, 임의의 개수의 원소들을 담을 수 있다. 튜플끼리 비교할 때, 원소가 나열된 순서대로 비교한다. 튜플 t의 i번째 원소를 얻고 싶으면 다음과 같이 std::get() 함수를 사용하면 된다. 실제 함수를 호출할 때에는 i 위치에 변수를 사용할 수 없다. std::get(t); // i should be constant 또한, 데이터 type이 x인 원소를 얻고 싶으면 다음과 같이 std::get() 함수를 사용하면 된다. 이때, type이 x인 원소가 2개 이상이면 컴파일 에러가 발생한다. 즉, type이 고유한 원소에 대해서만 작동한다. std::get(t) std::make_tuple() 함수를 사용해 ..
https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하� www.acmicpc.net 풀이 방법 체스판의 임의의 칸에 여러 개의 말이 쌓여있을 수 있다. 이 정보를 states라는 unordered_map에 저장하도록 한다. key는 칸의 위치를 1차원으로 변환한 값, value는 그 칸에 존재하는 말들의 ID 벡터로 한다. 이때, 해당 벡터를 v라고 하고 크기가 n이라면, v[i]는 v[i+1]~v[n-1]을 업고 있다. unordered_map ..

https://www.acmicpc.net/problem/5373 5373번: 큐빙 문제 루빅스 큐브는 삼차원 퍼즐이다. 보통 루빅스 큐브는 3×3×3개의 작은 정육면체로 이루어져 있다. 퍼즐을 풀려면 각 면에 있는 아홉 개의 작은 정육면체의 색이 동일해야 한다. 큐브는 각 면 www.acmicpc.net 풀이 방법 큐브의 각 면의 상태와 회전 등을 Cube라는 클래스로 나타냈다. #define CUBE_SIZE 3 enum {UP, DOWN, FRONT, BACK, LEFT, RIGHT}; class Cube{ public: Cube(){ char colors[6] = {'w', 'y', 'r', 'o', 'g', 'b'}; for(int i=0; i
Kernel Modules 커널 모듈은 커널 모드로 실행되어야 하는 프로그램이며 확장자는 .ko이다. 부팅 후 필요할 때 동적으로 로드해 커널에 포함시킬 수 있어 커널 이미지 크기를 줄이는 데에 도움을 주고, 부팅 시간을 줄여준다. root 권한을 가진 사용자만 커널 모듈을 로드/언로드할 수 있다. dmesg 커맨드로 시스템 부팅시 출력되는 메세지와 커널에서 출력(예. printk(), pr_info(), pr_alert() 등)하는 로그 메세지를 확인할 수 있다. kernel module과 관련된 커맨드는 다음과 같다. modinfo : 해당 커널 모듈에 대한 정보를 출력한다. lsmod: 로드된 커널 모듈 목록을 출력한다. sudo insmod .ko: 해당 커널 모듈을 로드한다. sudo rmmod..