Pintos | Project 1 | Alarm clock

Alarm 이란 호출한 프로세스를 정해진 시간 후에 다시 시작하는 커널 내부 함수이다. 현재 Pintos에서는 알람 기능이 Busy waiting을 이용하여 구현되어 있다.본 과제에서는 알람 기능을 sleep/wake up 방식으로 구현하는 것이 목표이다.Thread가

2021년 12월 30일
·
0개의 댓글
·

동적 메모리 할당(1) | 개요

동적 메모리 할당 동적 메모리 할당은 컴퓨터 프로그램의 실행 중에 추가적인 메모리 공간이을 할당하는 것을 말한다. 동적 메모리 할당기는 가상 메모리인 heap (힙)을 관리한다. 할당기는 힙을 다양한 크기의 블록들의 집합으로 관리한다. 각 블록은 할당되었거나 가용한 가

2021년 12월 15일
·
0개의 댓글
·

리트코드 15 | 세 수의 합 (배열)

주어진 배열에서 합을 0으로 만들 수 있는 3개의 원소를 출력하시오가장 쉽게 생각할 수 있는 방법은 3중 반복문을 통해 3개의 수의 합이 0이 되는 모든 경우의 수를 확인 하는 방법이다. 하지만 이 방법은 시간 초과가 난다.따라서 투포인터를 이용하여 반복문을 돌면서 조

2021년 12월 15일
·
0개의 댓글
·

리트코드 937 | 로그 파일 재정렬 (문자열 조작)

아래 기준에 맞게 로그를 재정렬하기로그의 가장 앞 부분은 식별자이다.문자로 구성된 로그가 숫자 로그보다 앞에 온다.로그의 내용을 기준으로 정렬하고 내용이 동일할 경우, 식별자를 기준으로 정렬한다.숫자 로그는 입력받은 순서대로 한다.입력받은 로그를 문자열 split()을

2021년 12월 15일
·
0개의 댓글
·

리트코드 819 | 가장 흔한 단어 (문자열 조작)

금지된 단어를 제외하고 가장 많이 사용된 단어를 출력하시오.모든 단어는 대소문자 구분이 없으며 소문자의 형태로 반환하시오.python의 regular expression과 lower() 메서드를 통해 소문자 알파벳이 아닌 character는 공백으로 바꾼다.단어의 빈도

2021년 12월 15일
·
0개의 댓글
·

리트코드 10 | 배열 파티션 I (배열)

원소가 정수이고 개수가 2의 배수인 배열이 주어진다.각 원소들을 두개씩 짝 지어 n개의 pair 를 만들고 각각의 pair에서 작은 값을 더했을 때 그 합이 가장 큰 수를 반환하시오.nums 리스트 오름차순 정렬한다문제 요구 조건이 2개씩 짝지은 각각의 pair에서 작

2021년 12월 15일
·
0개의 댓글
·

리트코드 121 | 주식을 사고팔기 가장 좋은 시점 (배열)

prices 배열이 주어진다.i번째 인덱스이 값은 i번째 날 주식의 가격이다.주식을 살 날과 주식을 팔 날을 하루씩만 선택하여 얻을 수 있는 이익 중 가장 큰 값을 반환하시오.만약 이익을 얻을 수 없는 경우 0을 출력하시오for loop을 통해 주식의 최솟값과 그 때까

2021년 12월 15일
·
0개의 댓글
·

리트코드 21| 두 정렬 리스트의 병합 (연결리스트)

문제 출처정렬되어 있는 두 연결 리스트가 있을 때, 두 연결 리스트를 합치시오두 연결 리스트가 이미 정렬되어있기 때문에 각각의 처음 인덱스부터 노드의 값을 하나씩 비교하여 더 작은 값을 새로운 연결리스트(current.next) 로 추가한다.두 연결 리스트 중 하나의

2021년 12월 15일
·
0개의 댓글
·

리트코드 234 | 팰린드롬 연결 리스트 (연결리스트)

연결리스트가 펠린드롬인지 판별하라.연결 리스트를 순회하여 리스트 / deque 으로 만들어서 첫 인덱스와 마지막 인덱스를 차례로 비교하여 같은지 틀린지를 판별한다.Runner 기법을 이용한 방법한번에 한 칸 이동하는 slow 포인터, 한번에 두 칸 이동하는 fast 포

2021년 12월 14일
·
0개의 댓글
·
post-thumbnail

C언어로 구현하는 | 레드블랙트리

자가 균형 이진 탐색 트리로서 연관 배열 등을 구현하는데 쓰이는 자료 구조이다.높이가 h 인 이진 탐색 트리에서 삽입, 검색, 삭제 등과 같은 동작이 O(h) 의 시간에 수행될 수 있는데, 최악의 경우 (이진 탐색 트리의 높이가 클 경우) 실행 속도가 일반적인 연결 리

2021년 12월 10일
·
0개의 댓글
·

백준 17404 | RGB거리 (동적 계획법)

RGB 거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다.집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는

2021년 12월 1일
·
0개의 댓글
·

백준 1912번 | 연속합 (동적 계획법)

n개의 정수로 이루어진 임의의 수열이 주어진다.우리는 이 중 연속된 며 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다.단 수는 한 개 이상 선택해야 한다.예를 들어10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어

2021년 12월 1일
·
0개의 댓글
·

백준 2156 | 포도주 시식 (동적 계획법)

효주는 포도주 시식회에 갔다. 그 곳에는 테이블 위에 다양한 포도주 잔이 일렬로 놓여 있다.효주는 포도주 시식을 하려고 하는데 두 가지 규칙이 있다.포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다.연속으로

2021년 12월 1일
·
0개의 댓글
·

백준 2579 | 계단 오르기 (동적 계획법)

계단오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다.각각의 계딴에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.규칙계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다.연속으로 세 개의 계단을

2021년 12월 1일
·
0개의 댓글
·

백준 1541 | 잃어버린 괄호 (그리디 알고리즘)

세준이는 양수와 +, - 그리고 괄호를 가지고 식을 만들었다.그리고 나서 세준이는 괄호를 모두 지웠다.세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오식은 0 ~ 9, +, - 만으로

2021년 11월 29일
·
0개의 댓글
·

백준 1946 | 신입 사원 (그리디 알고리즘)

최고만을 지향하는 대기업 진영 주식회사의 신규 사원 채용은 1차 서류심사와 2차 면접시험으로 이루어진다.회사는 최고의 인재들만 사원으로 선발하고 싶다.그래서 진영 주식화사는 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다

2021년 11월 29일
·
0개의 댓글
·

백준 1931 | 회의실 배정 (그리디 알고리즘)

한 개의 회의실이 있는데, 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들고자한다.각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자.회의는 한번 시작하면 중간에 중

2021년 11월 29일
·
0개의 댓글
·

백준 11047 | 동전 0 (그리디 알고리즘)

준규가 가지고 있는 동전은 총 N종류이다. 각각의 동전을 매우 많이 가지고 있다.동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다.이때 필요한 동전의 개수의 최솟값을 구하는 프로그램을 작성하시오K 원을 만드는데 필요한 동전 개수의 최솟값 출력N : 동전의 종류

2021년 11월 29일
·
0개의 댓글
·