전체 글 (275) 썸네일형 리스트형 [OS] 페이지 교체 알고리즘 (Page Replacement Algorithm) 페이징 교체 알고리즘의 목표 : 페이지 부재율을 최소화하여 성능을 높이는 것페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 메모리에 적재되지 않았을 경우(Page Fault),어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 방법메모리가 꽉 차있으면 기존 페이지 중 하나를 물리 메모리에서 디스크의 스왑 영역으로 내보내야 하는데, 이때 기존 페이지들 중에서 어떤 것을 내려서 교체할 지 결정대상 페이지(victim page) : 교체될 페이지페이지 교체 방식: Global vs. Local 교체운영체제(OS)는 메모리를 효율적으로 관리하기 위해 페이지 교체 알고리즘을 사용해 victim page(교체될 페이지)를 선정한다.1. Global 교체 방식메모리에 올라온 모든 프로세스의 페이지 중.. [Python] 백준 2156 포도주 시식 문제 분석다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있다.포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고 마신 후에는 원래 위치에 다시 놓아야 한다.(한 번 마신 포도주는 채워지지 않는다. → 방문체크)연속으로 놓여있는 3잔을 모두 마실 수 없다.최대한 많은 포도주 맛을 보기 위해 어떤 포도주 잔을 선택해야 할지 고민1 ~ n 번호의 n개의 포도주잔이 테이블 위에 순서대로 있음가장 많은 양의 포도주를 마실 수 있도록 하는 프로그램 코드 설계이전 단계에서 탐색한 최댓값을 토대로 다음 단계까지 탐색한 최댓값을 구할 수 있다.i번째 포도주까지 탐색했을 때 마실 수 있는 최대 양은?i번째 포도주를 마시는 경우연속으로 3잔을 마실 수 없다는 조건1-1) 이전 포도주는 마시고, 전전 포도주.. [Python] 백준 9205 맥주 마시면서 걸어가기 문제 분석맥주 1박스 20개50m에 한 병씩가면서 편의점에서 맥주를 더 구매해야 할 수도 있다.편의점에 들렸을 때, 빈 명은 버리고, 새 맥주 병을 살 수 있는데 박스에 들어있는 맥주는 20병을 넘을 수 없다.편의점을 나선 직후에서도 50m를 가기 전 맥주 한 병을 마셔야 한다.편의점을 도착하면 이전에 얼마를 마시든 리셋 풀이시작 좌표, n개의 편의점 좌표, 도착 좌표20병, 1병당 50m → 한 번에 1,000m 갈 수 있다.편의점에 도착하면 20병 리셋 : 고려할 필요 없을 듯bfs 너비 우선 탐색최적의 경로를 찾아가면서 현재 위치부터 다음 위치까지의 거리를 계산하고그 중 거리가 1000 초과가 있으면 bad거리가 모두 1000 이하이면 happy 정답 코드실패import sysfrom collect.. [Python] 백준 5014 스타트링크 문제 분석총 F층,가려는 건물은 G층,현재 S층버튼은 U : 위로, D : 아래로 (이동할 수 없으면 움직이지 않는다.)G층에 도착하려면 버튼을 적어도 몇 번 눌러야 하는가갈 수 없으면 "use the stairs" 출력S -> G로 가기 위해 눌러야 하는 버튼의 수의 최솟값 출력 풀이s + u * i - d * j = g 를 만들 수 있는 ( i + j )의 최솟값을 찾아라단, 모든 과정에서 값은 1 이상 f 이하를 벗어날 수 없다.백트래킹이동 횟수 : 이전 층 + 1시작 층을 큐에 넣고만약 큐가 비었는데도 끝나지 않았다면, 정답 코드import sysfrom collections import dequeinput = sys.stdin.readlinehighest, now, end, up, down =.. [Python] 백준 14247 나무 자르기 문제 분석n개의 나무하루에 한 나무씩 / n일 산에 오르며 나무를 잘라갈 것이다.밤이 되면 나무는 빠른 속도로 자라는데 자라는 길이는 나무마다 다름어느 나무를 잘라가느냐에 따라 총 구할 수 있는 나무의 양이 다름나무의 처음 길이와 하루에 자라는 양이 주어졌을 때, 영선이가 얻을 수 있는 최대 나무 양을 구하라자른 이후에도 나무는 0부터 다시 자라기 때ㅜㅁㄴ에 같은 나무를 여러 번 자를 수 있다.나무 : 1번부터 n번다음 줄에는 첫날 올라갔을 때 나무의 길이나무들이 자라는 길이나무를 잘라서 구할 수 있는 최대 양 풀이나무의 수 : n → n일 동안 산을 오르면서 나무를 잘라나갈 것하루에 성장할 수 있는 길이가 가장 긴 나무를 제일 마지막에 자르는 것이 잘라가는 나무 길이의 최대 값을 얻을 수 있는 방법하루.. [네트워크] DNS (Domain Name System) 왜 DNS가 필요하게 되었을까?DNS(Domain Name System)는 IP 주소 대신 사람이 이해하기 쉬운 도메인 이름을 사용하기 위해 등장1. 초창기 인터넷 : ip 주소만 사용인터넷이 처음 개발될 때(ARPANET 시대), 컴퓨터들은 IP 주소(예: 172.217.169.110)를 사용해서 서로 통신문제점IP 주소는 사람이 기억하기 어려움 → 웹사이트마다 숫자를 외워야 했음IP 주소는 변경될 수 있음 → 서버가 이동하거나 변경되면 새로운 IP 주소를 알아야 함인터넷이 커질수록 관리가 어려움 → IP를 일일이 기록하는 방식(Hosts 파일)로는 한계 2. HOSTS 파일 방식의 한계인터넷 초기에는 hosts.txt라는 파일에 IP 주소와 도메인 이름을 직접 매핑해서 관리하였다.// hosts.tx.. [네트워크] DNS와 웹 통신 흐름 www.example.com 이라는 웹사이트를 방문한다고 가정하고, 이때 어떤 과정이 일어나는지 살펴보자 1. DNS(Domain Name System) 조회 과정DNS란?인터넷에서는 컴퓨터들이 서로 통신할 때 IP주소(ex. 192.168.1.1)를 사용한다.하지만 사람들이 숫자로 된 ip주소를 기억하기 어렵기 때문에 웹사이트 이름(도메인 이름, ex. www.example.com )을 사용한다.이때 DNS가 이 도메인 이름을 ip주소로 변환해주는 역할을 한다.사람이 인식하기 쉬운 도메인 이름을 서버가 인식하는 IP 주소로 변환하는 분산 데이터베이스 시스템분산 데이터베이스 시스템하나의 데이터베이스(DB)를 여러 개의 서버(노드)에 분산하여 저장하고 관리하는 시스템즉, 단일 서버가 아닌 여러 서버에서 .. [mongoDB] 설치, 실행, 종료 명령어 mac - terminal 에서 mongoDB 관련 명령어 정리 1. 설치brew install mongodb-community특정 버전을 설치하고 싶다면 (ex. 6.0 버전) 다음과 같이 입력하면 된다.brew install mongodb-community@6.0 2. 실행brew services start mongodb-communitybrew services start mongodb-community@6.0 3. 포트 번호 확인grep "port" /etc/mongod.confcat /usr/local/etc/mongod.conf | grep port'port : ' 뒤에 포트 번호가 출력된다.4. db 확인show dbs 5. mongo shell 접속mongoshmongh shell에 접속하면.. 이전 1 2 3 4 5 6 7 ··· 35 다음