목록분류 전체보기 (255)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ccXt3J/btrnhBxVXrJ/HEw07jLC60AadtY8ZToZSk/img.png)
# 주소 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.awt.Point; import java.util.ArrayList; import java.util.Scanner; public class Main{ static int min = Integer.MAX_VALUE; static int[][] arr; static int n, m; static boolean[]..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bEP2nT/btrm3PD1jAZ/7fewuTaysJW8kv4W2zRZSK/img.png)
지난 시간에 배운건 프로세스 관리에 대해 배웠습니다. 그 과정에서 컨텍스트 스위치를 이야기 했었고 컨텍스트 스위칭은 비용이 크기 때문에 가능한 줄이는 것이 좋다고 했었고 그 과정에서 바로 스레드가 있었습니다. 스레드의 뜻은 '실' 과 같습니다. 그럼 스레드가 운영체제에서는 어떻게 다루어지는지 이번 시간에 한 번 자세히 알아보겠습니다. 스레드를 얘기하려면 먼저 프로세스를 이해할 필요가 있습니다. 프로세스는 여러 형태로 정의가 되었었죠. 어떤 작업을 하는데 있어서 자원이 필요하기 때문에 그 자원을 제어하는 것. 그것이 프로세스의 역할입니다. 그렇다면 프로세스는 자원과 제어라는 두 가지로 나누어서 생각을 할 수 있습니다. 이 때 제어 부분을 따로 때놓고 고려할 때 이것을 스레드라고 할 수 있습니다. 보통 실 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dre8qY/btrm7NeBcq3/wDKGom9tpukVoeTcYIJMU1/img.png)
# 주소 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.*; public class Main{ static int[][] arr; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static int n; static boolean[][] visit; static int count; static ArrayList list; s..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cvO9IK/btrmYEaJRka/FCxkyC4bKS18YcFi8sm451/img.png)
# 주소 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.awt.Point; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main{ static int[][] arr; static int dx[] = {0,1,0,-1,-1,-1,1,1}; static int dy..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Kwi9f/btrmXjdJzE6/h3ybsm6TYBSgfst9tmUokK/img.png)
# 주소 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.LinkedList; import java.util.Scanner; public class Main{ static int[][] arr; static int n; static boolean[] visit; public static void main(String..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KKWb5/btrm0qIQ4ev/x2OUETLy6n3IKUcugeG5T0/img.png)
인터럽트를 정희해보면 "예상치 못한, 외부에서 발생한 이벤트" 입니다. Unexcpected, external events라고도 부릅니다. 가장 대표적인게 I/O interrupt입니다. 예를들어 게임을 하는데, 게임 프로세스가 돌고있다고 합시다. 그럼 우리가 언제 총을 쏘고 언제 클릭을 할 지 프로세스가 알고 있나요? 그것을 I/O interrupt라고 합니다. 그 외에도 다양한 interrupt가 있지만 중요한건 인터럽트가 뭔지 알고 있어야 합니다. 그럼 이 인터럽트가 발생하면 어떻게 되는지 처리 과정을 알아보겟습니다. 프로세스가 돌고 있는데 누가 쿡 찌르면 어떻게 하나요? 인터럽트가 발생하면 이게 왜 발생했는지, 무엇이 쿡 찔렀는지 아니면 이걸 무시할건지를 결정해야 합니다. 인터럽스 서비스 할 것으..