profile
Timing beats Speed
post-thumbnail

BOJ - 1300 k번째 수 해결 전략 (C++)

문제 링크백준 1300번 - k번째 수  본 문제는 꽤나 까다로운 문제이다. 문제의 해결 Idea를 찾기만 한다면 어렵지 않게 해결할 수 있지만, 그 Idea를 찾는 과정에 '함정으로 빠지기 쉬운 유혹'이 많기 때문이다.  문제를 읽어보고, 몇 가지 예제를 분석하다보면

2일 전
·
0개의 댓글
·
post-thumbnail

BOJ - 2110 공유기 설치 해결 전략 (C++)

문제 링크백준 2110번 - 공유기 설치  본 문제는 전형적인 Binary Search 응용 문제로, 이분 탐색을 요구하는 상황임을 인식하는 것은 어렵지 않다. 다만, 그 구현에 있어서 약간의 센스가 필요한 문제이다. 가장 핵심적인 Tip은 아래와 같은 사실을 인지하는

5일 전
·
0개의 댓글
·
post-thumbnail

BOJ - 10986 나머지 합 해결 전략 (C++)

문제 링크백준 10986번 - 나머지 합  본 문제는 컴퓨터공학과 학부 과정에서 '이산 수학'을 배운 이라면 반드시 한 번 이상은 들어봤을 '모듈러 연산 관련 공식'을 사용하면 해결할 수 있는 문제이다. 본인은 최초 풀이 시도에서 해당 공식을 떠올리지 못해 해결하지 못

2022년 8월 5일
·
0개의 댓글
·
post-thumbnail

BOJ - 11659 구간 합 구하기 4 해결 전략 (C++)

문제 링크백준 11659번 - 구간 합 구하기4  본인의 PS 실력이 여전히 많이 부족함을 느낀다. CS 이론이나, 시간을 오래 투자해야하는 깊이 있는 학부 프로젝트에는 참 잘한다고 느끼는데, PS에 있어서는 늘 자신감이 떨어진다. 극복하자.  이런 얘기를 하는 이유는

2022년 8월 5일
·
0개의 댓글
·
post-thumbnail

BOJ - 1004 어린 왕자 해결 전략 (C++)

문제 링크백준 1004번 - 어린 왕자  문제를 읽다 보면, 문제의 조건(ex. 경계가 맞닿거나 ~)이 아래와 같은 아이디어를 유도하고 있음을 금새 알아챌 수 있다.출발지와 도착지를 포함하지 않는 원들은 모두 삭제해도 상관 없다.즉, 각 행성과 출발지/도착지 간의 거리

2022년 8월 5일
·
0개의 댓글
·
post-thumbnail

BOJ - 2477 참외밭 해결 전략 (C++)

문제 링크백준 2477번 - 참외밭  본인은 이 문제를 처음 보았을 때, 매우 쉬운 문제일 것이라 생각하고 접근했다가 두 번이나 틀리는 낭패를 보았다. 사실 쉬운 문제는 맞다. 허나, 가볍게 생각해선 답안을 도출하기 어려운 문제이기도 하다.  처음엔, 입력에서 동서/남

2022년 8월 5일
·
0개의 댓글
·
post-thumbnail

BOJ - 14425 문자열 집합 해결 전략 (C++)

문제 링크백준 14425번 - 문자열 집합  본 문제를 보자마자 우리는 Search의 대상과 Search의 주체가 모두 10,000개이기 때문에, 문자열 비교까지 고려하면 시간 제한 내에 Naive한 방식으로는 해결할 수 없음을 어렵지 않게 알 수 있다.  이럴 때는,

2022년 8월 4일
·
0개의 댓글
·
post-thumbnail

SP - 8.1 Virtual Memory Concepts

  대망의 System Programming 연재 마지막 포스팅이다. 마지막 개념은 그동안 계속 언급만 해왔던 Virtual Memory이다. 이는 Computer Architecture를 공부했다면 어느정도 이미 알고 있을 수 있는 내용이지만, SP 연재가 끝나면 새

2022년 6월 19일
·
0개의 댓글
·
post-thumbnail

SP - 7.3 Library Interpositioning

  Interposition은 '중간에 끼워넣음'이라는 의미로, Intercept와 유사한 뉘앙스라고 생각하면 된다. Library Interpositioning : 임의의 Function에 대한 호출을 프로그래머가 Intercept할 수 있는 Linking Techn

2022년 6월 19일
·
0개의 댓글
·
post-thumbnail

SP - 7.2 Fundamentals of Linking (2)

  우리는 현재 Linking에 대해 학습하고 있다. 우리가 Modular Programming을 할 때, 각 Subprogram별로 Program을 쪼개는 것이다. 한 소스 코드에 다 집어넣지 않는 것이다. 이때, 분리된 소스 코드들을 하나의 실행 파일로 묶는 것이

2022년 6월 18일
·
0개의 댓글
·
post-thumbnail

SP - 7.1 Fundamentals of Linking (1)

우리가 C Program을 작성하고, Program을 메모리에 올릴 때, Process에는 Code 및 Data가 자리잡는다(단순히 Segment를 말하는 것이 아니다). 이때

2022년 6월 10일
·
0개의 댓글
·
post-thumbnail

SP - 6.5 Implicit Memory Management

  이번 포스팅에선 Implicit Memory Management에 대해 다뤄보겠다. 6.1 포스팅에서 우리는 Implicit Memory Allocator에 대해 아주 간단히 언급한 바 있다. Application이 Allocate만 하고, Free는 하지 않는 D

2022년 6월 10일
·
0개의 댓글
·
post-thumbnail

SP - 6.4 Explicit & Segregated Free List

  지금까지 열심히 Implicit Free List에 대해 다루었다. 이제부턴 아직 소개하지 않은 Method들인 Explicit Free List와 Segregated Free List에 대해 알아보자.(추후 업데이트)

2022년 6월 9일
·
0개의 댓글
·
post-thumbnail

SP - 6.3 Implicit List Implementation (2)

  현재 우리는 Process에서 Heap Segment를 어떻게 할당하고 관리하는지 알아보고 있다. Heap은 Top of Heap, 즉, brk Pointer가 가리키는 위치에 따라 크기가 좌우된다. brk Pointer는 sbrk 호출을 통해 조절되며, sbrk

2022년 6월 9일
·
0개의 댓글
·
post-thumbnail

SP - 6.2 Implicit List Implementation (1)

  지난 시간 우리는 Dynamic Memory Allocation의 기초 이론을 가볍게 다루어보았다.  Heap은 결국 Word 단위 Memory Addressing이 이루어지는 '연속된' 가상 메모리 공간인 것이다. Heap의 시작 주소부터, brk Pointer가

2022년 6월 9일
·
0개의 댓글
·
post-thumbnail

SP - 6.1 Dynamic Memory Allocator

  지금부터는 '동적 메모리 할당(Dynamic Memory Allocation)'에 대해 다룰 것이다. C의 malloc을 떠올리면 된다.  동적 할당은 'Heap Memory Manager'가 수행한다. 힙 메모리 관리자를 다르게 부르면 'Dynamic Memory

2022년 6월 8일
·
0개의 댓글
·
post-thumbnail

SP - 5.6 Thread-Level Parallelism

  지금까지 우리는 Critical Section에 대한 Mutual Exclusion을 제공해 Synchronization 문제를 해결했었다. 그 과정에서, 프로그램이 돌아가는 기반 컴퓨터가 단일 CPU인지, Multicore인지는 고려하지 않았었다.  허나, 알다시

2022년 6월 7일
·
0개의 댓글
·
post-thumbnail

SP - 5.5 Race & Deadlock Problem

  Thread Part의 마지막 포스팅이다. 먼 길을 달려왔다. 이제 Thread가 무엇인지 꽤나 윤곽이 잡힐 것이다. 추후 업로드할 Thread-based Server 제작 포스팅을 통해 Thread에 대한 이해를 최종 완성하도록 하자. 우선, 이번 포스팅에선, T

2022년 6월 7일
·
0개의 댓글
·
post-thumbnail

SP - 5.4 Thread Safety & Reentrancy

  이제부터 우리는 'Thread-Safety' 개념에 대해 알아볼 것이다. 이전에 다루었던 'Async-Signal-Safety'와 유사하게 바라보면 된다.Thread-Safe : 여러 Thread가 Concurrent하게 특정 함수를 반복적으로 호출할 때, 항상 C

2022년 6월 7일
·
0개의 댓글
·
post-thumbnail

SP - 5.3 Semaphore Synchronization (2)

  지난 포스팅에서 Semaphore에 대해 알아보았다. Semaphore란, 0 이상의 값을 가지고, P와 V라는 연산에 의해 조작되는 전역 변수라고 했다. 이때, 초기 Mutex 값이 1이면 Binary Semaphore, 1보다 큰 값이면 Counting

2022년 5월 10일
·
0개의 댓글
·