PCB와 Context Switching
·
Computer Science/Operating System
컴퓨터에서 일어나는 다중 작업은 동시에 처리하는 것이 아닌각 프로그램을 일정시간 동안 번갈아가면서 실행하는 것이다.다만 그 속도가 매우 빠르기에 동시에 처리한다고 느끼는 것이다. 프로세스들이 교체되어 수행되고 나면 원래 수행하던 프로세스의 정보를 저장하고다른 프로세스를 처리해야 하는데, 이를 저장하는 공간을 PCB(Process Control Block) 라고 한다.PCBPCB : 운영체제에서 관리하는 프로세스에 대한 메타데이터를 저장한 데이터블록프로세스가 생성될 때 고유의 PCB가 생성되며 종료되면 PCB가 제거됨커널의 데이터 영역에 저장됨실행 상태일 때는 프로그램 카운터 레지스터 값 등이 CPU 레지스터에 로드됨 Pointer: 프로세스 전환 시 위치 정보를 유지하는 스택 포인터Process Stat..
[Gold V] 뱀과 사다리 게임 - 16928
·
코딩테스트/백준
[Gold V] 뱀과 사다리 게임 - 16928문제 링크성능 요약메모리: 14260 KB, 시간: 108 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 23일 14:15:39문제 설명뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다.주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까?게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다.플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸..
[Silver I] 쉬운 최단거리 - 14940
·
코딩테스트/백준
[Silver I] 쉬운 최단거리 - 14940문제 링크성능 요약메모리: 59064 KB, 시간: 748 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 23일 15:50:47문제 설명지도가 주어지면 모든 지점에 대해서 목표지점까지의 거리를 구하여라.문제를 쉽게 만들기 위해 오직 가로와 세로로만 움직일 수 있다고 하자.입력지도의 크기 n과 m이 주어진다. n은 세로의 크기, m은 가로의 크기다.(2 ≤ n ≤ 1000, 2 ≤ m ≤ 1000)다음 n개의 줄에 m개의 숫자가 주어진다. 0은 갈 수 없는 땅이고 1은 갈 수 있는 땅, 2는 목표지점이다. 입력에서 2는 단 한개이다.출력각 지점에서 목표지점까지의 거리를 출력한다. 원래 갈 수 없는 땅인 위치는 0을 출력하고, 원래..
[Silver I] 절댓값 힙 - 11286
·
코딩테스트/백준
[Silver I] 절댓값 힙 - 11286문제 링크성능 요약메모리: 25744 KB, 시간: 280 ms분류자료 구조, 우선순위 큐제출 일자2024년 10월 23일 15:33:53문제 설명절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다.배열에 정수 x (x ≠ 0)를 넣는다.배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.입력첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가..
[Silver II] 좌표 압축 - 18870
·
코딩테스트/백준
[Silver II] 좌표 압축 - 18870문제 링크성능 요약메모리: 366240 KB, 시간: 2024 ms분류값 / 좌표 압축, 정렬제출 일자2024년 10월 23일 15:24:55문제 설명수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.입력첫째 줄에 N이 주어진다.둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.출력첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다. 예제 입력52 4..
[level 3] 정수 삼각형 - 43105
·
코딩테스트/프로그래머스
[level 3] 정수 삼각형 - 43105문제 링크성능 요약메모리: 61.5 MB, 시간: 12.50 ms구분코딩테스트 연습 > 동적계획법(Dynamic Programming)채점결과정확성: 64.3효율성: 35.7합계: 100.0 / 100.0제출 일자2024년 10월 22일 10:31:46문제 설명위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다.삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성..
[Gold V] AC - 5430
·
코딩테스트/백준
[Gold V] AC - 5430문제 링크성능 요약메모리: 100472 KB, 시간: 720 ms분류덱, 파싱, 구현, 문자열, 자료 구조제출 일자2024년 10월 19일 22:03:25문제 설명선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다.함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다.함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수..
[Silver III] 1로 만들기 - 1463
·
코딩테스트/백준
[Silver III] 1로 만들기 - 1463문제 링크성능 요약메모리: 18092 KB, 시간: 120 ms분류다이나믹 프로그래밍제출 일자2024년 10월 18일 16:19:04문제 설명정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다.X가 3으로 나누어 떨어지면, 3으로 나눈다.X가 2로 나누어 떨어지면, 2로 나눈다.1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오.입력첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.출력첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 다음은 문제에 제시된 예시이다. 10의 경우에 10 → 9 → 3 → 1 로 3번 만에 만들 수 있다. ..
[Gold V] 토마토 - 7576
·
코딩테스트/백준
[Gold V] 토마토 - 7576문제 링크성능 요약메모리: 128204 KB, 시간: 592 ms분류너비 우선 탐색, 그래프 이론, 그래프 탐색제출 일자2024년 10월 17일 10:05:23문제 설명철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며..
[Gold II] 가운데를 말해요 - 1655
·
코딩테스트/백준
[Gold II] 가운데를 말해요 - 1655문제 링크성능 요약메모리: 39032 KB, 시간: 1056 ms분류자료 구조, 우선순위 큐제출 일자2024년 10월 16일 03:25:51문제 설명백준이는 동생에게 "가운데를 말해요" 게임을 가르쳐주고 있다. 백준이가 정수를 하나씩 외칠때마다 동생은 지금까지 백준이가 말한 수 중에서 중간값을 말해야 한다. 만약, 그동안 백준이가 외친 수의 개수가 짝수개라면 중간에 있는 두 수 중에서 작은 수를 말해야 한다.예를 들어 백준이가 동생에게 1, 5, 2, 10, -99, 7, 5를 순서대로 외쳤다고 하면, 동생은 1, 1, 2, 2, 2, 2, 5를 차례대로 말해야 한다. 백준이가 외치는 수가 주어졌을 때, 동생이 말해야 하는 수를 구하는 프로그램을 작성하시오.입..