호우동의 개발일지

Today :

article thumbnail
[OS] 시스템 콜(1) - 시스템 콜의 개념과 API, 운영체제와의 관계

시스템콜이란? 시스템 콜이 사용되는 방법의 예 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스 제공 간단한 프로그램이라도 운영체제의 기능을 아주 많이 사용 초당 수천 개의 시스템 콜을 수행 사용자 대부분은 이러한 상태를 알지 못함 → 응용 개발자들은 API에 따라 프로그램 설계 모든 운영체제는 고유한 시스템 콜 이름을 가짐 응용 프로그래밍 인터페이스(API) 응용 프로그래머가 사용 가능한 함수의 집합을 명시 각 함수에 전달되어야 할 매개변수와 반환값 포함 프로그래머는 운영체제가 제공하는 코드의 라이브러리를 통해 API를 활용 막후에서 API를 구성하는 함수들은 통상 응용 프로그래머를 대신하여 실제 시스템 콜을 호출 예 : Windows 함수 CreateProcess() → NTCreatePro..

[C++] 프로그래머스 Level 3 - 인사고과
Algorithm/Programmers 2023. 3. 28. 14:56

문제 이해 단계 입력으로 사원의 정보가 주어지는데 각각 (근무 태도 점수, 동료 평가 점수)로 이루어져 있다. 목표는 사원의 등수를 정하는 것이다. 이 중에서 다른 사원과 비교했을 때, 한 번이라도 다른 사원보다 두 점수가 둘 다 낮은 사원은 등수에서 제외한다. 그리고 등수는 점수가 높은 순으로 선정한다. 동점자가 존재하면 그 사원은 같은 등수이고, 그 뒤에 등수 하나가 없어진 등수가 다음 사원에게 간다. 해당 조건에서 가장 처음에 들어온 입력(인덱스 0) 사원의 등수를 구하는 문제 제외됐다면 -1을 출력 문제 접근 단계 문제의 제한 사항부터 살펴보자. scores의 길이, 그러니까 사원의 최대 수와 점수의 최댓값은 100,000이다. 여기서 더하는 행위는 근무 태도 + 동료 평가 밖에 없기 때문에 In..

[C++] 백준 16938 - 캠프 준비
Algorithm/BOJ 2023. 3. 28. 12:41

문제 이해 단계 https://www.acmicpc.net/problem/16938 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net N개의 문제가 나열되어 있고, 각 문제는 정수로 난이도가 표현되어 있다. 이 중에서 2문제 이상을 골라야 한다. 고른 문제 난이도의 합이 L 이상, R 이하가 되어야 하고 최댓값과 최솟값의 차이가 X 이상이어야 한다. 해당 조건을 만족하는 문제의 경우의 수는 총 몇 개인지를 고르는 문제 문제 접근 단계 문제의 조건부터 살펴보자. 문제의 개수 N이 최대 15개밖에 안된다. 이 말은 탐색할게 몇 개 없어서 완전 탐색을 해도 된다는 소리다. 그리고 L과 R은 최대 10^9이라 int 자료형을 넘을 ..

article thumbnail
[C++] 백준/BOJ - 11509 : 풍선 맞추기
Algorithm/BOJ 2023. 3. 27. 22:07

문제 이해 단계 https://www.acmicpc.net/problem/11509 11509번: 풍선 맞추기 첫 번째 예제 에서 [5,4,3] 을 터트리고 [2,1]을 터트리면 모든 풍선을 터트릴 수 있으므로 최소한 2개의 화살을 필요로 한다. www.acmicpc.net 왼쪽부터 오른쪽으로 일렬로 서있는 N개의 풍선이 있다. 그리고 화살은 H의 높이에서 오른쪽으로 출발하고 풍선에 부딪힐 때마다 풍선은 터지며, 화살은 높이가 H-1이 된다. 풍선과 화살은 높이가 같아야 부딪히는 것으로 간주한다. 해당 조건에서 N개의 풍선을 모두 터트릴 때, 가장 적은 화살을 사용해라. 그리고 그 화살의 개수를 출력해라 문제 접근 단계 문제의 조건부터 살펴보면, 풍선의 개수 N와 높이 H는 최대 1,000,000개이다...

article thumbnail
[C++] 백준/BOJ - 3079 : 고냥이
Algorithm/BOJ 2023. 3. 27. 19:56

문제 이해 단계 https://www.acmicpc.net/problem/16472 16472번: 고냥이 고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고 www.acmicpc.net 소문자로 이루어진 알파벳 문자열이 주어진다. 또한 입력으로 N이 주어지는데, 서로 다른 종류의 알파벳을 인식할 수 있는 개수이다. 구해야 하는 것은 N개의 서로 다른 종류의 알파벳을 인식할 수 있을 때, 주어진 문자열에서 인식할 수 있는 연속된 문자열 중 최대 길이를 구하는 문제 문제 접근 단계 늘 그렇듯, 제한사항부터 알아보자.입력 N은 최대 26까지, 문자열의 길이는 최대 100,000..

[C++] 백준/BOJ - 3079 : 입국심사
Algorithm/BOJ 2023. 3. 26. 19:58

문제 이해 단계 https://www.acmicpc.net/problem/3079 3079번: 입국심사 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ M ≤ 1,000,000,000) 다음 N개 줄에는 각 심사대에서 심사를 하는데 걸리는 시간인 Tk가 주어진다. (1 ≤ Tk ≤ 109) www.acmicpc.net N개의 심사대와 M명이 주어진다. 각 심사대마다 심사하는데 소요되는 시간이 존재한다. M명은 한 줄로 서서 자기 차례를 기다리는데, 여러 개의 심사대 중 하나를 골라서 갈 수 있다. 이미 심사가 진행 중인 곳은 가지 못한다. 또한 몇 초를 기다렸다가 가는 것도 가능하다. 여러 가지 수를 조합해서 M명이 최대한 빨리 심사를 마치는 경우의 수를 조합할 때, 이때의 최소 ..

article thumbnail
[C++] 백준/BOJ - 16928 : 뱀과 사다리 게임
Algorithm/BOJ 2023. 3. 25. 18:11

문제 이해 단계 https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 10x10 짜리 맵에 사다리와 뱀과 맵이 있다. 그리고 플레이어는 1~6까지 적혀있는 주사위로 움직인다. 목표는 1에서 100까지 움직이는 것이다. 주사위 결과가 100칸을 넘어서 움직이는 것이라면 이동할 수 없다. 사다리와 뱀은 둘 다 점프 개념으로 사다리는 뒤에서 앞으로, 뱀은 앞에서 뒤로 이동하는 개념이다. N개의 사다리와 M개의..

[C++] 백준/BOJ - 20955 : 민서의 응급 수술
Algorithm/BOJ 2023. 3. 24. 21:44

문제 이해 단계 https://www.acmicpc.net/problem/20955 20955번: 민서의 응급 수술 민서는 강원대학교 컴퓨터공학과의 신임 교수이다. 그녀가 저술한 효율적인 택배 배달을 위한 최적 경로 설계에 관한 연구 논문은 아직도 널리 인용되고 있다. 오늘도 열심히 강의를 하던 민서 www.acmicpc.net 뉴런(노드) N개와 시냅스(간선) M개가 들어온다. 이후 M 줄에 걸쳐 연결된 두 뉴런의 정보가 들어온다. 만들어야 하는 것은 하나로 연결된 트리, 즉 사이클이 존재하지 않아야 한다. 만약 사이클이 존재한다면 그 사이클을 끊어야 한다. 이러한 조건일 때 모든 뉴런을 하나의 연결된 트리로 만들 때 필요한 최소 연산 횟수를 구하는 문제 문제 접근 단계 문제에서 대놓고 뉴런과 시냅스,..