백준 / 1916번 / 최소비용 구하기 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1916   문제N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 M개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. A번째 도시에서 B번째 도시까지 가는데 드는 최소비용을 출력하여라. 도시의 번호는 1부터 N까지이다.입력첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스 비용이 주어진다. 버스..
백준 / 11659번 / 구간 합 구하기 4 / python 파이썬
·
코딩테스트/백준 (python)
문제 :  https://www.acmicpc.net/problem/11659  문제수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다.출력총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다.제한1 ≤ N ≤ 100,0001 ≤ M ≤ 100,0001 ≤ i ≤ j ≤ N예제 입력 1 5 35 4 3 2 11 32 45 5예제 출력 11291나의 풀이import sysinput = sys.stdin.readlinen, m = ma..
[운영체제] 가상 메모리
·
CS/OS
페이징 기반 메모리 관리 · 프로세스의 모든 메모리 참조는 논리주소이며, 이 주소는 수행시간에 물리주소로 변환됨   ☞  한 프로세스가 그 수행 과정에서 스와핑을 통해 다시 메모리에  적재될 때, 그 이전과 다른 위치에 적재될 수 있음을 의미 -> 재배치 · 한 프로세스의 주소공간은 페이지로 분할될 수 있고, 프로세스 수행 중 이 페이지들은 메모리의 연속된 영역에 위치할 필요가 없음   ☞ 프로세스가 수행될 때 페이지 테이블을 활용해 동적으로 주소를 변환함으로써 가능케 함 ● 만약 두 특성이 만족된다면, 수행 시간에 프로세스의 모든 페이지(혹은 세그먼트)가 주기억장치에 적재되어 있을 필요가 없음 ! 프로세스의 일부 페이지 적재 후 실행 방법 - 운영체제는 초기에 수행될 프로세스의 코드와 데이터가 포함되도..
[알고리즘] P vs NP
·
자료구조 | 알고리즘
P vs NP 문제 : 컴퓨터가 답이 되는 몇 가지 경우는 빠르게 찾을 수 있지만, 최적의 답을 빠르게 찾을 수는 없는 모든 경우에 대한 문제 - P (Deterministic Polynomial time, 결정론적 다항 시간)다항식 시간복잡도를 가진 알고리즘으로 해결되는 문제 집합 (O(n), O(n²))P 클래스는 입력 크기에 대해 다항 시간 안에 결정론적 순차 기계에서 해결할 수 있는 모든 결정 문제들을 포함 - NP (Non-deterministic Polynomial time, 비결정론적 다항 시간)비결정적 다항식 시간 알고리즘으로 해결되는 문제 집합 (O(n!), O(2^n))NP 알고리즘은 주어진 해에 대해 'Yes'를 확인해야 하므로 결정 문제로 변형NP 클래스는 긍정적인 해답을 주어진 정..
[운영체제] 스레드 동기화
·
CS/OS
스레드 동기화다수의 스레드가 공유 데이터를 동시에 접근할 때 공유 데이터가 훼손되지 않게 스레드의 실행을 제어하는 기법한 스레드가 공유 데이터 사용을 마칠 때까지 다른 스레드가 공유 데이터에 접근하지 못하도록 제어‣ 임계구역과 상호배제임계구역 : 공유 데이터에 접근하는 프로그램 코드들상호배제 : 임계구역에 먼저 진입한 스레드가 임계구역의 실행을 끝낼 때까지, 다른 스레드가 진입하지 못하도록 보장상호배제 구현 요구조건상호배제가 강제되어야 함임계구역에 접근하고자 하는 스레드의 수행이 무한히 미루어져서는 안 됨임계구역이 비어 있을 때, 임계구역에 진입하려고 하는 스레드는 즉시 임계구역에 들어갈 수 있어야 함일반 코드에서 수행이 멈춘 스레드는 다른 스레드의 수행을 간섭해서는 안 됨스레드 개수나 상대적인 스레드 ..
백준 / 1987번 / 알파벳 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1987   나의 풀이 (시간 초과)import sysinput = sys.stdin.readlineR, C = map(int, input().split())board = [[_ for _ in range(C)] for _ in range(R)]for i in range(R): alp = input() for j in range(C): board[i][j] = alp[j]dx = [-1, 1, 0, 0]dy = [0, 0, -1, 1]def DFS(x, y, visited, count): global max_count max_count = max(max_count, count) for i in ra..
[Python] 웹소켓 서버 / 클라이언트 구현 (WebSocket 라이브러리)
·
개발 | 프로젝트/Python
python은 웹소켓 개발을 위한 WebSockets 라이브러리를 지원한다. WebSocket 프로토콜은 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 기술로, HTTP 통신의 한계를 넘어 지속적이고 실시간의 데이터 교환을 필요로 하는 애플리케이션에 적합하다. WebSockets 라이브러리는 이 프로토콜을 쉽게 사용할 수 있게 해주며, 비동기 I/O를 통해 고성능 통신을 구현할 수 있도록 도와준다.주요 기능간편한 서버 구축: WebSocket 서버를 쉽게 구축하고 실행할 수 있음비동기 지원: Python의 asyncio를 활용한 비동기 프로그래밍을 지원하여, 고성능 네트워킹 애플리케이션 개발이 가능클라이언트 연결 관리: WebSocket 클라이언트를 생성하고, 서버와의 연결을 관리할 수 있음메시지..
백준 / 16953번 / A → B / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/16953     나의 풀이import sysfrom collections import dequeinput = sys.stdin.readlinedef solution(a, b): q = deque([(a, 1)]) while q: n, cnt = q.popleft() if n == b: return cnt if n * 2  큐를 이용하여 풀 수 있는 문제이다. 가능한 연산을 수행한 값과 연산 횟수를 모두 큐에 저장하여 먼저 리턴되는 값을 답으로 연산의 최솟값을 구할 수 있다.