Oneulog

https://www.acmicpc.net/problem/13334 13334번: 철로 입력은 표준입력을 사용한다. 첫 번째 줄에 사람 수를 나타내는 양의 정수 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 각 줄에 정수 쌍 (hi, oi)가 주어진다. 여기서 hi와 oi는 −100,000,000이상, 100,000,0 www.acmicpc.net 문제 집과 사무실을 통근하는 n명의 사람들이 있다. 각 사람의 집과 사무실은 수평선 상에 있는 서로 다른 점에 위치하고 있다. 임의의 두 사람 A, B에 대하여, A의 집 혹은 사무실의 위치가 B의 집 혹은 사무실의 위치와 같을 수 있다. 통근을 하는 사람들의 편의를 위하여 일직선 상의 어떤 두 점을 잇는 철로를 건설하여, 기차를 운행하려고 한다..
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지..
스케줄러 Ready Queue에 존재하는 프로세스들을 특정한 우선순위를 기반으로 CPU를 할당받게 하는 역할로 장기, 중기, 단기 스케줄러가 있다. 프로세스를 스케줄링하기 위한 Queue의 종류 1. Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 2. Ready Queue : 현재 메모리 내에 있으면서 CPU를 할당받기를 기다리는 프로세스의 집합 3. Device Queue : Device I/O 작업을 대기하고 있는 프로세스의 집합 1. 장기 스케줄러(Long-Term Scheduler) 수행할 Job이 10개지만 메모리에는 6개만 올릴 수 있는 상황일 때, Job을 고르는 역할을 하는 것이 장기 스케줄러이다. -> 따라서 Job 스케줄러라고도 부른다. Ready Queue에 적재하..
이전 글인 CBOW 모델 구현에 이어 Skip-gram 모델 구현을 진행한다. 전반적인 구현 과정더미 데이터를 생성한다.해당 데이터를 띄어쓰기를 기준으로 쪼개 단어로 이루어진 시퀀스 리스트를 생성한다.해당 시퀀스에 있는 단어들을 중복을 제거해 단어 : 인덱스 값을 가지는 딕셔너리를 생성한다.시퀀스 리스트와 딕셔너리를 활용해 Skip-gram 모델 학습을 위한 데이터셋을 생성한다.모델 학습을 위한 DataLoader를 생성한다.Skip-gram 모델을 정의한다.Skip-gram 모델과 loss, optimizer를 선언하고 학습을 진행한다.단어 간 유사도를 확인한다. 0. 라이브러리 설정해당 과정에서 사용할 패키지들을 불러온다.import torchfrom torch.utils.data import Te..
이전 글인 Word2Vec 논문 리뷰에 이어 구현을 진행한다.  해당 논문에서 소개된 CBOW를 구현한다.전반적인 구현 과정더미 데이터를 생성한다.해당 데이터를 띄어쓰기를 기준으로 쪼개 단어로 이루어진 시퀀스 리스트를 생성한다.해당 시퀀스에 있는 단어들을 중복을 제거해 단어 : 인덱스 값을 가지는 딕셔너리를 생성한다.시퀀스 리스트와 딕셔너리를 활용해 CBOW 모델 학습을 위한 데이터셋을 생성한다.모델 학습을 위한 DataLoader를 생성한다.CBOW 모델을 정의한다.CBOW 모델과 loss, optimizer를 선언하고 학습을 진행한다.단어 간의 유사도를 확인한다.0. 라이브러리 설정해당 과정에서 사용할 패키지들을 불러온다.import torchfrom torch.utils.data import Ten..
CPU 스케줄링 알고리즘 CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다. 프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정한다. 이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, Ready Queue에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다. 1. 비선점형 방식(=비전형 방식) 비선점형 방식은 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않는다. 따라서 프로세스 종료나 I/O 등의 이벤트가 발생할 때까지 실행을 보장하며, Context Switching으로 인한 부하가 적다. (1) FCFS(First Come..
1. 교착 상태(Deadlock) 교착 상태는 두 개 이상의 프로세스들이 서로가 가진 자원을 기다리며 중단된 상태를 말한다. 예를 들어 프로세스 A가 프로세스 B의 어떤 자원을 요청할 때 프로세스 B도 프로세스 A가 점유하고 있는 자원을 요청하는 것이다. 2. 교착상태의 원인 아래의 4가지 조건을 모두 달성할 경우 교착 상태에 빠지게 된다. (1) 상호 배제 한 프로세스가 자원을 독점하고 있으며 다른 프로세스들은 접근이 불가능하다. (2) 점유 대기 특정 프로세스가 점유한 자원을 다른 프로세스가 요청하는 상태이다. (3) 비선점 다른 프로세스의 자원을 강제적으로 가져올 수 없다. (4) 순환 대기(=환형 대기) 프로세스 A는 프로세스 B의 자원을 요구하고, 프로세스 B는 프로세스 A의 자원을 요구하는 등..
https://www.acmicpc.net/problem/2698 2698번: 인접한 비트의 개수 첫째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 수 2개가 공백으로 구분되어 이루어져 있다. 첫 번째 수는 n이고, 두 번째 수는 k이다. n과 www.acmicpc.net 문제 0과 1로 이루어진 수열 S가 있다. S의 첫 수는 s1이고, 마지막 수는 sn이다. S의 인접한 비트의 개수는 다음과 같이 구할 수 있다. s1*s2 + s2*s3 + s3*s4 + ... + sn-1 * sn 위의 식을 이용하면 수열 S에서 인접한 1의 개수를 구할 수 있다. 예를들어, 011101101의 인접한 비트의 개수는 3이 되고, 111101101은 ..
NLP Developer
Oneul