문제보러가기 2234번: 성곽 첫째 줄에 두 정수 n, m이 주어진다. 다음 m개의 줄에는 n개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net 이 문제는 기존 bfs처럼 영역을 나눠서 영역의 개수, 영역의 최대 넓이 , 벽을 하나 제거한 후의 영역의 최대 넓이를 구하는 여러 문제가 합쳐져 있는 복합적인(?) 문제였다. 여기서 까다롭게 봐야 할 점은 벽을 제시할 때 0~15의 값으로 주어지며 이를 bit로 변환하여 사용해야 한다는 점이었다. 문제풀이 - bfs로 구한 영역을 증가하는 groupCnt를 키값으로 묶어 아래 그림처럼 group [][]에 저장해준다. -bfs로 영역을 구할 ..
앞에서 공부하면서 단기 스케줄러 즉, cpu 스케줄러가 ready Queue에 있는 프로세스들 중 어떤 프로세스에게 CPU를 할당할지를 정한다고 하였다. 여기서는 그 프로세스를 선택하는 여러 가지 스케줄링 방법들을 공부해보자! 스케줄링 (Scheduling) : CPU스케줄러가 이 스케줄링 알고리즘을 통해 Ready Queue에 있는 프로세스들을 관리한다. *burst time-cpu 수행 시간 , waiting time-대기시간, turnaround time-수행 시간+대기시간 스케줄링의 목적 No starvation : 각각의 프로세스들이 오랜 시간 동안 CPU를 할당받지 못하는 상황이 없도록 한다. Fairness : 각각의 프로세스에 공평하게 CPU를 할당해준다. Balance : Keeping ..
프로세스의 상태를 변화시키는 스케줄러를 공부하다 보니 프로세스 상태까지 다시 보게 되었다. 한번 본다고 끝이 아니라 보다 보면 헷갈리는 게 계속 나오는듯하다! 스케줄러(Scheduler)란? :어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 모듈을 지칭한다. 스케줄러에 따라 프로세스 상태가 바뀌게 된다. ↓$프로세스 상태 살펴보기! 더보기 new : 프로세스 생성중 프로세스를 생성하고 있는 단계로 커널 공간에 PCB가 만들어진 상태 ready : 프로세스가 CPU를 기다리는 상태 프로세스가 메모리에 적재된 상태로 실행하는데 필요한 자원을 모두 얻은 상태 아직 CPU를 받지는 않았지만 CPU를 할당 받으면 바로 실행 가능한 상태 ready상태를 가지는 여러개의 프로세스들이 존재할 수 있음 ru..
시스템의 수행능력을 향상해준다는 멀티스레딩, 의미와 장단점. 그리고 멀티 프로세스와의 차이점도 공부해보자! 멀티 스레딩(Multi Threading)이란? : 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생산과 관리의 중복성을 최소화하여 수행 능력을 향상하는 것. 여러 개의 스레드를 통해 하나의 프로그램에서 동시에 여러 개의 일을 수행할 수 있도록 해주는 것. 멀티 스레드를 사용하는 이유는? : 프로세스를 이용하여 동시에 처리하던 일을 스레드로 구현할 경우 메모리 공간과 시스템 자원 소모가 줄어들게 되기 때문이다. 이 때문에 다양한 장점들이 존재한다. 멀티 스레딩의 장점 스레드 간 통신 시에 별도의 자원을 사용하는 것이 아닌 공유된 공간인 전역 변수, heap메모리 영역을 통해 ..
공부한 거 까먹지 않게 정리하면서 다시 보기! 가장 기본이 되는 프로세스와 스레드의 정의와 차이점을 정리해보고자 한다. 또한 관련 내용 중 헷갈리거나 잊어버리지 말아야 하는 것들도 같이 정리해 보자. 프로세스(Process)란? : 실행 중인 프로그램을 의미하며, 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 프로세스 제어 블록(Process Control Block, PCB)란? : 프로세스의 정보를 담고 있는데 , 이 PCB는 운영체제가 프로세스 생성과 동시에 고유한 PCB를 생성하여 관리하는 데 사용한다. 다른 프로세스로 CPU를 넘겨줄 때(문맥 교환) 지금까지 수행하던 내역을 이 PCB에 저장하게 된다. 그러므로 다시 CPU를 할당받게 되었을 때 PCB에 저장된 내역을..
문제보러가기 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 [23:59,23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59, 23:59] 18:00 programmers.co.kr 이문제는 당시에 난이도 상에 포함되었던 문제라고 한다. 막상 풀이를 보게 되면 별거 없는 거 같지만, 어떻게 구현해서 풀어야겠다는 감이 잘 오지 않을 수 있다! 나의 경우는 문제 이해부터가 오래 걸렸던 거 같다 ㅎ.. 문제풀이 - 크루들의 도착시간인 timetable을 int로 변환하여 오름차순으로 정렬하기 위해 PriorityQueue에 저장한다. - 첫차 출발시간인 09:00시부터 t분 간격으로 ..
문제보러가기 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 이문제는 전형적인 탐색 문제로 연결된 영역이 몇 개가 있는지 구하는 문제였다. 다른 점이라면 위, 아래, 오른쪽, 왼쪽이 아닌 대각선 포함 8방향으로 탐색해야 한다는 점. 문제풀이 -map [][]에 입력받은 값을 저장해준다. -map을 이중 for문으로 탐색하면서 1일 경우(섬일 경우) 그리고 방문하지 않았을 경우에 bfs()를 수행한다. -4방향이 아닌 대각선 포함 8방향으로 체크해주면서 연결된 섬의 개수를 체크한다. 사실 이문제는 "메모리..
문제보러가기 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net 이 문제는 DP문제로 크게 어렵지는 않았지만 나의 경우 마지막 날짜인 n일까지 일할 수 있다는 것을 놓쳐서 시간이 좀 더 걸렸던 문제였다 ㅎ,,, 문제풀이 -주어진 시간을 저장하는 t [] 배열과 금액을 저장하는 p [] 배열을 생성한 후 값을 저장한다. -해당 날짜까지 받을 수 있는 최대 금액을 저장하는 dp배열을 생성한다. -총금액 중 최대 금액을 저장하는 max를 선언한다. -여기서 중요한 점 dp배열은 dp [n]..
- Total
- Today
- Yesterday
- Heap
- 최소 스패닝 트리
- 정렬
- dfs
- 백준
- 운영체제
- Spring
- BFS
- Stomp
- 알고리즘
- Baekjoon
- MST
- DP
- 채팅
- java
- 프로그래머스
- git
- Oracle
- sockjs
- 삼성 sw역량 테스트
- 코딩테스트
- JavaScript
- OS
- 완전탐색
- websocket
- programers
- 삼성 sw역량테스트
- 자바
- SWEA
- 분리 집합
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |