
문제보러가기 이 문제의 경우 그래프 탐색 유형에 속해 있으며 bfs, dfs, 플로이드와샬등 다양한 풀이 방법으로 해결이 가능하다고 한다. 처음 문제를 접했을 때는 금방 풀릴 거 같았지만 생각보다 어렵게 느꼈고 다른 분들의 풀이 방법을 참고하여 해결하였다. 플로이드 와샬이라는 방법을 몰랐기 때문에 공부하였고 이 알고리즘으로 풀이를 하였다. -플로이드 와샬 기본문제 (백준 11404- 플로이드) 플로이드 와샬 이란? 다익스트라 알고리즘과 같이 정점-정점 간의 최단거리를 구하는 알고리즘이다. 차이점으로는 다익스트라는 하나의 고정된 정점에서 다른 모든 정점으로의 최단거리를 구하는 것이고, 플로이드 와샬은 모든 정점에서 다른 모든 정점으로의 최단거리를 구하는 것이다. 또한 dp를 기반으로 이루어진다. 문제풀이 ..

앞의 게시글에서는 websocket 사용 환경을 설정하고 stomp를 이용한 기본적인 구현을 해보았다. [spring 멀티 채팅] websocket,sockjs,STOMP 이용한 채팅 기능-설정(1) [spring 멀티 채팅] websocket,sockjs,STOMP 이용한 채팅 기능-STOMP채팅구현(2) 채팅방에 접속해서 사람들과 실시간 메시지 보내기, 받기 기능이 가능한 것 까지가 기본적인 구현이고, 채팅방으로서의 기능을 하려면 내가 채팅방에 접속하기 이전에 내용들도 당연히 볼 수 있어야 한다. 카카오톡 같은 채팅앱에서 위로 스크롤 시 이전 메시지를 불러오는데 이 기능이 바로 무한 스크롤(스크롤 페이징)이다. 기본 레이아웃 구성 채팅 div class = ". chatcontent" .chatcon..

문제보러가기 2234번: 성곽 첫째 줄에 두 정수 n, m이 주어진다. 다음 m개의 줄에는 n개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net 이 문제는 기존 bfs처럼 영역을 나눠서 영역의 개수, 영역의 최대 넓이 , 벽을 하나 제거한 후의 영역의 최대 넓이를 구하는 여러 문제가 합쳐져 있는 복합적인(?) 문제였다. 여기서 까다롭게 봐야 할 점은 벽을 제시할 때 0~15의 값으로 주어지며 이를 bit로 변환하여 사용해야 한다는 점이었다. 문제풀이 - bfs로 구한 영역을 증가하는 groupCnt를 키값으로 묶어 아래 그림처럼 group [][]에 저장해준다. -bfs로 영역을 구할 ..

java를 통해 개발을 하면서 jvm위에서 돌아간다는 것쯤은 알고 있을 것이다. 하지만 프로그램이 실행되고 처리되는 과정에 대해 정리가 되지 않았던 것 같아 정리하면서 여러 가지 궁금점을 포함해 공부해보고자 한다! JVM(Java Virtual Machine)이란? : 자바 코드를 CPU나 운영체제(플랫폼)의 종류와 무관하게 실행할 수 있도록 하는 주체이다. → 왜? java는 운영체제 위에서 바로 실행이 되지 않아 JVM이 필요할까? : Java 컴파일러는. java 파일을. class 파일로 컴파일한다. 이는. java 파일을 Java byte code로 변환하여. class 만드는 것인데 Byte Code는 기계어가 아니기 때문에 OS에서 바로 실행이 되지 않는다. 이를 해결하기 위해 JVM을 통해..

앞에서 공부하면서 단기 스케줄러 즉, 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에 저장된 내역을..
- Total
- Today
- Yesterday
- 프로그래머스
- Oracle
- 완전탐색
- 정렬
- programers
- 자바
- SWEA
- 채팅
- Stomp
- git
- sockjs
- 최소 스패닝 트리
- 운영체제
- 분리 집합
- DP
- 백준
- Heap
- Baekjoon
- OS
- 알고리즘
- MST
- JavaScript
- 코딩테스트
- 삼성 sw역량 테스트
- Spring
- websocket
- BFS
- dfs
- java
- 삼성 sw역량테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |