전체 글
-
[BOJ] 20922번 - 겹치는 건 싫어Algorithm/BOJ 2022. 6. 29. 12:16
오늘 풀어본 문제는 [BOJ] 20922번 - 겹치는 건 싫어 입니다. https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net 알고리즘 위 문제는 연속되는 부분 수열 중에서 특정 숫자가 K개 아래인 경우 중 제일 긴 길이를 선택하면 됩니다. N의 범위는 10만 a의 범위는 10만으로써, 메모리가 1024MB임으로 여유가 있으니 해당 범위만큼 길이를 선언하고 시작해도 무방할 것으로 보입니다. 한번만 순회하면서 가장 긴 경우의 수를 찾기 위해 투포인..
-
[Airflow] - Error : driver failed programming external connectivity on endpoint webserver개발/Airflow 2022. 6. 27. 23:09
Docker 내부에 Airflow를 사용하다가 뜨는 에러에 대해서 정리하여 본다. Airflow에 Flower를 통해 URL을 접근하면 보이게 되는데, 계속 하여 아래와 같은 Error가 발생하였다. docker run -d -p 80:80 --name webserver test -> driver failed programming external connectivity on endpoint webserver Docker 내부에서 Healthcheck를 해보아도 원인을 모르던 중에 알게 된 내용이다. EADDRINUSE indicates port 80 is already in use on either the docker VM or possibly directly on your laptop. 해당되는 Por..
-
9. Virtual Memory advantages and paging algorithmCS/OS 2022. 6. 23. 17:12
Virtual Memory Advantage 1. Shared Memory ( window dll , linux so .. ) Multiple Process 간의 communication의 방법으로 공유 메모리를 사용할 수 있는데, demand-paging 기법을 사용할 경우 다른 프로세스의 각각의 페이지가 같은 프레임을 가리키도록 하면 공유 메모리를 사용할 수 있다. 아래 그림을 보면 Process A의 Page1과 Process B의 Page7은 서로 같은 Memory를 가르키고 있어 공유가 가능하다. dll in window 혹은 so in linux 이 방식으로 Physical Memory Frame을 같이 가리켜, Memory save 2. COW(Copy on Write) Fork System..
-
8. Vitrual MemoryCS/OS 2022. 6. 23. 01:42
Virtual Memory 가상 메모리는 프로세스의 virtual memory(logical memory)와 physical memory를 분리하기 위해 생겨난 것 모든 프로세스는 자신만의 가상 주소 공간을 가지고 있다. 32비트/64비트 프로세스는 각 비트수에 맞게 최대 4GB/16EB의 주소 공간을 가진다. 모든 프로세스들은 자신만의 주소 공간을 가지기 때문에, 특정 프로세스 내에서 쓰레드가 수행될 때 해당 쓰레드는 프로세스가 소유하고 있는 메모리에 대해서만 접근이 가능하다. OS Memory는 숨겨져 있다. 쓰레드가 OS의 Data에 Access하는 것이 불가능하다. 따라서, A 프로세스가 0x12345678 주소에 무엇인가를 저장하였지만, B 프로세스 역시 0x12345678 주소에 무엇인가를 저..
-
코딩 테스트 문자열 처리 시 주의점Algorithm/Algorithm 2022. 6. 22. 16:13
BOJ 13414번을 풀다가 쉽게 놓칠 수 있는 문자열 처리 경우의 수에 대해 정리하여 본다. https://www.acmicpc.net/problem/13414 13414번: 수강신청 입력 데이터는 표준 입력을 사용한다. 입력은 1개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 과목의 수강 가능 인원 K(1 ≤ K ≤ 100,000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목 www.acmicpc.net 주의 점 1. 문자열 -> Int -> Key 접근 시 위 문제를 보면 일반적으로 아무 생각 없이 Dictionary에 Key로 구현하여 값을 넣는데, 이 때 Key에 관련된 문자열을 넣을 때 Int 형으로 바꾸어서 입력을 넣게 되면, 학번과 같은 경우는 앞이 0이 나올 수가 있어 예외가 발..
-
[BOJ] 13144번 - List of Unique NumbersAlgorithm/BOJ 2022. 6. 22. 15:41
[BOJ] 13144번 - List of Unique Numbers https://www.acmicpc.net/problem/13144 13144번: List of Unique Numbers 길이가 N인 수열이 주어질 때, 수열에서 연속한 1개 이상의 수를 뽑았을 때 같은 수가 여러 번 등장하지 않는 경우의 수를 구하는 프로그램을 작성하여라. www.acmicpc.net 문제 이해 수열에서 연속되게 1개 이상 뽑는 경우에서 같은 수가 등장하는 경우는 제외하고 갯수를 세라. 여기서 중요한 점이 "연속"과 "같은 수"이다. 알고리즘 처음 문제를 보자마자 투포인터로 풀어야겠다는 생각을 하였다. 각 시작점에서 같은 수가 없이 등장하는 뒷단계를 알면 한번에 계산이 되기 때문이다. 처음에는 Left , Right를..
-
[BOJ] 2110번 - 공유기 설치Algorithm/BOJ 2022. 6. 20. 23:14
[BOJ] 2110번 - 공유기 설치 https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 접근 방식(틀린 풀이) 해당 문제는 풀어본적 있는지 여부에 따라 풀 수 있는지 여부가 달라질 것으로 보인다. 처음에는 공유기를 맨 앞과 맨뒤로 부터 놓은 다음에 하나씩 증가 시키며 Devide 시켜 그 중에 max된 값을 추출하여 값을 구하는 방식으로 구현하였다. 하지만 위와 같은 방식은 O(N^2)이 소요되..
-
[BOJ] 8980번 - 택배Algorithm/BOJ 2022. 6. 20. 17:36
[BOJ] 8980번 - 택배 https://www.acmicpc.net/problem/8980 8980번: 택배 입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이 www.acmicpc.net 알고리즘 트럭 한대를 이용하여 다음의 조건을 모두 만족하면서 최대한 많은 박스들을 배송하려고 한다. 최대한 많은 박스들을 가져가야 함으로 그리디 알고리즘으로 생각하여 구현하였습니다. 처음에는 Truck을 Time에 따라 구현하였으나, 시간 복잡도가 부족하여 75점이 나왔기 때문에 후에 정렬된 박스들의 표를 보고 얼마나 보낼 수 있는지로 구현하여 O..