목록분류 전체보기 (323)
코드와이
프로세스 프로세스의 문맥(context) CPU 수행 상태를 나타내는 하드웨어 문맥 '현재 시점의 이 프로세스가 instruction을 어디까지 수행했는가' 를 알기 위해 register 에 어떤 값을 넣고 있었고 Program Counter 가 어디(프로세스의 주소공간)를 가르키고 있었는지를 알 수 있는 것 프로세스의 주소공간 code data stack 프로세스 관련 커널 자료 구조 PCB(Process Control Block) Kernel stack Time Sharing, Multitasking 프로세스들이 번갈아 가면서 실행하기 때문에 현재 프로세스의 상태를 백업해 놓아야 다음번 CPU 를 잡았을 때 잘 실행할 수 있다. 프로세스의 상태 Running : CPU 를 잡고 instruction ..
문제링크 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net package acmicpc.Gold4; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 부분합 { public static void main(String[] args) th..
문제링크 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 무한 시간초과... 백준의 질문검색을 통해 연산 시간을 줄일 수 있도록 수정했다. visited 확인 이차 배열을 정적 변수로 두지 않고, 입력 변수로 넣어준다. 덩어리를 분리하는 조건에 2번째 들어온다면 무조건 덩어리는 2개 이상이 되기 때문에 함수를 실행하지말고 break! 테두리 부분은 항상 0이기 때문에 이중 for 문으로 검사할 때 제외하고 검사한다. package acmi..
문제링크 https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 www.acmicpc.net 백준에 적혀있는 문제 설명만으로는 도저히 이해가 안되서 구글링을 통해 문제를 이해했다. '간선으로 이어지 두 정점은 같은 그룹이면 안된다' 라는 포인트에 집중하면 풀기 쉬운 문제이다. package acmicpc.Gold4; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream..
Kruskal 문제링크 https://www.acmicpc.net/problem/1922 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net package acmicpc.Gold4; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class 네트워크_연결 { static int n, e, parents[]; static class Point implement..
DP(memoization) 문제링크 https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net package acmicpc.Gold4; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 내리막길 { static int r, c, map[][], dp[][..
Kruskal 문제링크 https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 2차원 배열을 만들어서 간선의 값을 저장하는 순간 '메모리초과' 간선의 값을 저장하는 2차원 배열을 만들지 않고 문제를 풀어야한다. => kruskal, prim ... package acmicpc.Gold4; import java.io.BufferedReader; import java.io.IOException; import ..
동기식 입출력 & 비동기식 입출력 동기식 입출력 I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감 구현방법 1 I/O 가 끝날 때까지 CPU 를 낭비시킴 매시점 하나의 I/O만 일어날 수 있음 구현 방법 2 I/O 가 완료될 때까지 해당 프로그램에게서 CPU를 빼앗음 I/O 처리를 기다리는 줄에 그 프로그램을 줄 세움 다른 프로그램에게 CPU를 줌 비동기식 입출력 I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감 두 경우 모두 I/O 의 완료는 인터럽트로 알려줌 [간단 설명] Synchronous : 실제 하드웨어를 통해 I/O 작업이 완료된 걸 확인한 후 다음 작업을 하는 것 구현방법 1 을 사용한다면 CPU 와 I/O 장치가 낭비..