GitHub

https://github.com/Choidongjun0830

2024/09 42

3.3 프로세스와 쓰레드

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. 프로세스는 컴퓨터에서 실행되고 있는 프로그램을 말한다. CPU 스케줄링의 대상이 되는 작업이라는 용어와 같은 의미로 쓰인다.쓰레드는 프로세스와 내 작업의 흐름을 말한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스와가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 프로세스와 컴파일 과정프로세스는 프로그램이 메모리에 올라 인스턴화가 된 것이다. 컴파일러가 컴파일 과정을 통해 컴퓨터가 이해할 수 있는 기계어로 변역하여 실행할 수 있는 파일을 만들게 된다.  컴파일 과정전처리: 소스 코드의 주석을 제거하고, #include 등 헤더 파일을 병합하여 매크로로 치환한다.컴파일러: 오류처리, 코드 최적화 작..

CS 2024.09.17

[프로그래머스] 압축 / 2018 KAKAO BLIND RECRUITMENT

[3차] 압축문제 설명압축신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다.어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Ziv–Welch) 압축을 구현하기로 했다. LZW 압축은 1983년 발표된 알고리즘으로, 이미지 파일 포맷인 GIF 등 다양한 응용에서 사용되었다.LZW 압축은 다음 과정을 거친다.길이가 1인 모든 단어를 포함하도록 사전을 초기화한다.사전에서 현재 입력과 일치하는 가장 긴 문자열 w를 찾는다.w에 해당하는 사전의 색인 번호를 출력하고, 입력에서 w를 제거한다.입력..

[프로그래머스] Lv2. k진수에서 소수 개수 구하기

k진수에서 소수 개수 구하기문제 설명문제 설명양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다.0P0처럼 소수 양쪽에 0이 있는 경우P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것도 없는 경우P처럼 소수 양쪽에 아무것도 없는 경우단, P는 각 자릿수에 0을 포함하지 않는 소수입니다.예를 들어, 101은 P가 될 수 없습니다.예를 들어, 437674을 3진수로 바꾸면 211020101011입니다. 여기서 찾을 수 있는 조건에 맞는 소수는 왼쪽부터 순서대로 211, 2, 11이 있으며, 총 3개입니다. (211, 2, 11을 k진법으로 보았..

[프로그래머스] Lv1. 지폐 접기

[PCCE 기출문제] 9번 / 지폐 접기문제 설명민수는 다양한 지폐를 수집하는 취미를 가지고 있습니다. 지폐마다 크기가 달라 지갑에 넣으려면 여러 번 접어서 넣어야 합니다. 예를 들어 지갑의 크기가 30 * 15이고 지폐의 크기가 26 * 17이라면 한번 반으로 접어 13 * 17 크기로 만든 뒤 90도 돌려서 지갑에 넣을 수 있습니다. 지폐를 접을 때는 다음과 같은 규칙을 지킵니다.지폐를 접을 때는 항상 길이가 긴 쪽을 반으로 접습니다.접기 전 길이가 홀수였다면 접은 후 소수점 이하는 버립니다.접힌 지폐를 그대로 또는 90도 돌려서 지갑에 넣을 수 있다면 그만 접습니다.지갑의 가로, 세로 크기를 담은 정수 리스트 wallet과 지폐의 가로, 세로 크기를 담은 정수 리스트 bill가 주어질 때, 지갑에 ..

3.2 메모리

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다.CPU는 그저 메모리에 올라가 있는 것을 실행할 분이다.  메모리 계층레지스터: CPU 안에 있는 작은 메모리, 휘발성이며 속도가 가장 빠르고, 기억 용량이 가장 작음.캐시: L1, L2, L3 캐시. 휘발성이며 속도가 빠르고 기억 용량이 작다. 주 기억 장치: RAM. 휘발성이며 속도와 기억 용량이 보통이다.보조 기억 장치: SSD, HDD. 비휘발성이며, 속도가 느리고, 기억 용량이 크다.메모리는 디스크로부터 일정량의 데이터를 복사하고 임시 저장한다. 이를 필요시마다 CPU에 전달한다. 캐시데이터를 미리 복사해놓는 저장소이자 병목 현상을 줄이기 위한 것이다.=> 메모리와 CPU 사이 속도가 차이가 많이 나서 캐시로 문제를 해결한다.계층과..

CS 2024.09.15

[프로그래머스] Lv1. 동영상 재생기

[PCCP 기출문제] 1번 / 동영상 재생기문제 설명당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.10초 전으로 이동: 사용자가 "prev" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 전으로 이동합니다. 현재 위치가 10초 미만인 경우 영상의 처음 위치로 이동합니다. 영상의 처음 위치는 0분 0초입니다.10초 후로 이동: 사용자가 "next" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 후로 이동합니다. 동영상의 남은 시간이 10초 미만일 경우 영상의 마지막 위치로 이동합니다. 영상의 마지막 위치는 동영상의 길이와 같습니다...

[프로그래머스] Lv2. 디펜스 게임

디펜스 게임 문제 설명준호는 요즘 디펜스 게임에 푹 빠져 있습니다. 디펜스 게임은 준호가 보유한 병사 n명으로 연속되는 적의 공격을 순서대로 막는 게임입니다. 디펜스 게임은 다음과 같은 규칙으로 진행됩니다.준호는 처음에 병사 n명을 가지고 있습니다.매 라운드마다 enemy[i]마리의 적이 등장합니다.남은 병사 중 enemy[i]명 만큼 소모하여 enemy[i]마리의 적을 막을 수 있습니다.예를 들어 남은 병사가 7명이고, 적의 수가 2마리인 경우, 현재 라운드를 막으면 7 - 2 = 5명의 병사가 남습니다.남은 병사의 수보다 현재 라운드의 적의 수가 더 많으면 게임이 종료됩니다.게임에는 무적권이라는 스킬이 있으며, 무적권을 사용하면 병사의 소모없이 한 라운드의 공격을 막을 수 있습니다.무적권은 최대 k번..

[프로그래머스] Lv2. 무인도 여행 / BFS, DFS

무인도 여행문제 설명메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다. 지도의 각 칸에 적힌 숫자는 식량을 나타내는데, 상, 하, 좌, 우로 연결되는 칸에 적힌 숫자를 모두 합한 값은 해당 무인도에서 최대 며칠동안 머물 수 있는지를 나타냅니다. 어떤 섬으로 놀러 갈지 못 정한 메리는 우선 각 섬에서 최대 며칠씩 머물 수 있는지 알아본 후 놀러갈 섬을 결정하려 합..

[프로그래머스] Lv2. 짝지어 제거하기

짝지어 제거하기문제 설명짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다.예를 들어, 문자열 S = baabaa 라면b aa baa → bb aa → aa →의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다.제한사항문자열의 길이 : 1,000,000이하의 자연수문자열은 모두 소문자로 이루어져 있습니다...

3.1 운영체제와 컴퓨터

'면접을 위한 CS 전공지식 노트' 책을 보며 공부한 내용입니다. OS는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 운영체제의 역할 4가지CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에게 할당할지, 프로세스의 생성과 삭제, 자원할당 및 반환 관리메모리 관리: 한정된 메모리를 어떤 프로세스에 얼만큼 할당할지를 관리한다. 디스크 파일 관리: 디스크 파일을 어떤 방법으로 보관할지 관리한다.I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드 등과 컴퓨터 사이에서 데이터를 주고받는 것 관리시스템 콜운영체제가 커널에 접근하기 위한 인터페이스이며, 유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할 때 사용한다. 예시유저 프로그램이 I/O 요청으로 trap을 발동하면..

CS 2024.09.12
728x90