전체 글 91

[실버1] 백준 1149 RGB 거리 다익스트라 풀이(Java)

DP로 푸는게 빠르고 편하지만 다익스트라로도 풀 수 있다.package org.practice.다익스트라;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;// 실버 1 RGB거리// 한 마디로 양 옆에 집이랑 색깔이 같으면 안된다는 것 양 끝 집은 옆 집이랑만 비교하고// 색이 같으면 안된다는 것은 일종의 간선으로 표현할 수 있다. 입력에는 배열로 빨,초,파의 각 견적이 나와있는데// 이것을 선택하는 것을 어떠한 배열에서 특정한 배열로만 이동 가능하다고 보면 코스트를 가진 노드로 표현할 수 있다.// 최소 비용으로 목적지까지 가는 문제와 동일하며 우선순위 큐를..

[실버1] 백준 1398 케빈 베이컨의 6단계 법칙 Java 풀이 (bfs, 플로이드-워셜)

플로이드-워셜 방식 풀이package org.practice.플로이드워셜;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;// 실버 1 케빈 베이컨의 6단계 법칙 플로이드 워셜 풀이public class b1389FW { static final int INF = 1000000; static int[][] dist; static int userCount; public static void main(String[] args) throws IOException { BufferedReader br = new ..

도커 명령어 (2)

OS껍데기를 실행시킬 때 예를들어 우분투Docker run -dit ubuntu bash로 실행시키고Docker attach 컨테이너id로 접근가능하다OS안에 프로그램이 있는 이미지를 실행시킬 때 예를들어 톰캣Docker run -d -p 8080:8080 tomcat으로 실행시키고Docker exec -it 컨테이너id bash로 접근가능하다그냥 모든 프로그램에 -dit를 붙이는게 편하다 어차피 it를 추가로 붙여도 모든 프로그램에 이상은 없긴때문 톰캣을 -dit로 실행시켜도 exec로 들어가야하는건 같다톰캣은 메인 프로세스가 bash가 아니기 때문에 -dit를 해도 아무효과가없다 톰캣을 attach명령어로 못 들어가는 이기도하다attach는 컨테이너의 메인프로세스에 붙는다 동작대상은 예를들어 /bin..

인프라/Docker 2025.07.24

도커 명령어

Docker run --name을 사용하면 컨테이너에 이름을 지정할 수 있다. 후에 link를 통해 컨테이너 여러개를 묶어서 실행할 수 있기 때문에 이름을 지정하는게 좋다Docker attach 컨테이너id로 컨테이너 내부 접속이 가능하다 윈도우에서 저 명령어를 치면 리눅스 환경 안으로 들어간다-i 는 컨테이너의 입력유지 명령이다Docker 컨테이너는 명령이 끝나면 중지되는데 입력을 받을수있게함으로서 중지되지않게한다-t 는 컨테이너에 가짜 TTY를 할당한다.bash같은 셸프로그램은 TTY환경에서 작동함TTY는 사람이쓰는 터미널 환경을 뜻하며 TTY가 없으면 bash는 사람이 없다 판단하고 종료한다bash는 기본적으로 사람과 대화하는 프로그램이기 때문이다

인프라/Docker 2025.07.24

단편화

프로세스들이 메모리에 적재되고 제거되는 일이 반복되다 보면 어떤 가용공간은 너무 작은 조각이 된다.이처럼 곳곳에 못쓰는 작은 조각이 있지만 다 합치면 프로세스를 적재할 만한 공간이 되는 것을 외부 단편화라고 한다.최초 적합을 쓸 것인지 최적 적합을 쓸 것인지는 단편화의 크기에 영향을 받는다. 어느 알고리즘을 사용하더라도 외부 단편화는 문제다.압축은 외부단편화를 해결하는 방법이다 메모리 모든 내용을 한군데로 몰고 모든 가용공간을 다른 한군데로 몰아서 블록을 만드는 것그러나 압축은 프로세스들의 재배치가 실행 시간에 동적으로 이루어지는 경우에만 가능하다. 재배치 작업은 프로그램과 데이터를 새로운 위치로 옮기고 새 위치를 반영하기 위하여 기준 레지스터만 변경하면 된다.외부 단편화를 해결할 수 있는 다른 방법은 ..

운영체제 2025.07.24

페이징

물리 메모리는 프레임이라 불리는 같은 크기 블록으로 나누어짐논리 메모리는 페이지라 불리는 같은 크기 블록으로 나누어짐 프로세스가 실행되면 프로세스의 페이지는 메인 메모리 프레임으로 적재됨논리 주소 공간은 2^64바이트 보다 적게 장착 된 시스템에서도 프로세스는 64비트의 논리 주소 공간을 사용가능하다CPU의 모든 주소는 페이지 번호와 페이지 오프셋으로 이루어진다.페이지 번호는 페이지 테이블을 액세스할 때 사용 됨페이지 테이블은 물리 메모리의 각 프레임의 시작 주소를 저장하며 오프셋은 참조되는 프레임 안에서의 위치다 두 개를 결합하여 물리 메모리 주소다 MMU의 동작순서페이지 번호를 추출하여 페이지 테이블 인덱스로 사용페이지 테이블에서 해당 프레임 번호 추출논리 주소의 페이지 번호를 프레임 번호로 바꾼다프..

운영체제 2025.07.24