본문 바로가기

분류 전체보기

(689)
부분 합. [2143] [1. 문제 설명] https://www.acmicpc.net/problem/2143 [2. 풀이 접근] 부분 합, 이진 탐색을 조합하여 풀 수 있는 문제이다. 하나의 배열에서 부 배열의 모든 합의 조합은 최대 106 개 이다. 여기서 중복된 값은 제거하면 안된다. 합이 같아도, 부 배열을 이루는 원소가 다르거나, 부 배열을 이루는 원소의 위치가 다르기 때문이다. 즉, 각 경우가 고유한 조합이기 때문이다. 즉, 두개의 배열에서 각 부 배열의 합의 조합은 최대 1012 개 이다. 정답 출력을 위해서는 8byte 크기의 정수형 변수를 사용해야 한다. 중첩 for 문으로 구하면 시간 초과가 발생하니, 좀 더 빠른 탐색을 고민해야 한다. 부분 합 부 배열의 합을 O(1) 에 구할 수 있다. O(N^2) 에 부 ..
쿠버네티스 설치 과정 [1. 개요] 리눅스 서버에 쿠버네티스 설치 과정을 정리 Host OS: Ubuntu 20.04 vmware 이용 어느정도 설치 후, snapshot 으로 이미지 복제해서 사용 => 기존에 사용하던 이미지 파일이 존재하는 디렉터리를 통째로 복사해서 따로 저장 [2. 설치 개요] 전체 적인 과정은 ubuntu 나 centos 나 비슷하다. 각 노드 별, hostname 을 유니크하게 설정 => 멀티 노드 클러스터 구축 이후, 노드 구분을 위함. 쿠버네티스 repository 설정 => redhat 계열과 debian 계열이 좀 다름 docker 설치 => 최초 설치 시, cgroup driver 가 cgroupfs 이면, systemd 로 변경이 필요하다. => 버전은 18 버전 이상이면 됨(?). swa..
이분 탐색. [2343] [1. 문제 설명] https://www.acmicpc.net/problem/2343 [2. 풀이 접근] 좀 여러 테크닉을 조합해서 푸는 문제였다. 부분 합 이분 탐색 결정 문제 (이분 탐색을 통한) 결정 문제 무엇을 결정해야 하는가? => 어떤 값을 블루레이 길이로 설정했을 때, 이 값으로 모든 강의를 적절히 나눌 수 있는가? 이분 탐색 블루레이 길이 값을 정할 때, => 블루레이 길이가 1 ~ 109 이므로 순차 탐색 할 수 없다. 결정 문제를 해결해야 할 때, => 강의 수는 최대 10^5 이며, 순차 탐색 해봐도 될 거 같다. => 현재까지 강의 시간의 합이 블루레이 값 이하가 되는지 확인한다, 부분 합 사실 필요 없어 보인다. 문제 리뷰 중, 결정 문제를 굳이 이분 탐색으로 해결해야 할 필요가 ..
이분 탐색. [2467] [1. 문제 설명] https://www.acmicpc.net/problem/2467 [2. 풀이 접근] 코드 주석으로 대체, [3. 코드]
이분 탐색. [1072] [1. 문제 설명] https://www.acmicpc.net/problem/1072 [2. 풀이 접근] 풀이 시 주의 할 사항 승률 계산 시, 부동 소수점 오차로 인해 틀리는 경우가 많다. long double 을 통해 부동 소수점 오차를 줄이도록 한다. 게임 횟수 계산 시, long long 까지 안가도 된다. X 를 1,000,000,000 으로 하고 Y 를 0 으로 설정 시, 1,000,000,000 내에서 승률을 올릴 수 있다. 이분 탐색 종료 후, lo 값을 그대로 출력해도 된다. 이분 탐색 종료 후, lo 값을 그대로 출력해도 되는 이유 역으로, 어떤 상한 값을 찾으라고 할 때, hi 를 그대로 출력해도 되는 이유와 같은 맥락이다. 특정 조건을 만족하지 않을 때(승률이 바뀌지 않을 때), l..
탐욕법. [1946] [1. 문제 설명] https://www.acmicpc.net/problem/1946 [2. 풀이 접근] 서류 순위 D F A C E G B G C B D F A E 면접 순위 D 는 서류 순위가 제일 높으므로, 면접에 관계 없이 뽑을 수 있다. F 는 D 보다 서류 순위가 낮으므로 면접 순위가 더 높아야 뽑을 수 있지만, 면접 순위도 낮으므로 뽑을 수 없다. A 도 마찬가지 이유로 뽑을 수 없다. C 는 D 보다 서류 순위가 낮지만, D 보다 면접 순위는 더 높으므로 뽑을 수 있다. E 역시 뽑을 수 없다. G 는 C 보다 면접 순위가 더 높으므로 뽑을 수 있다. 한가지 중요한 사실이 있다. 서류 순위 순으로 해당 사람을 뽑을 수 있는지 없는지 결정하는 것은 현재 까지 면접 순위가 어떻게 되느냐 이다...
탐욕법. [1789, 10162, 10610] [1. 문제 설명] https://www.acmicpc.net/problem/1789 https://www.acmicpc.net/problem/10162 https://www.acmicpc.net/problem/10610 [2. 풀이 접근] === 문제 10162 === 이 문제는 아래 링크에서 5585 와 비슷한 방식으로 접근하면 된다. 버튼을 최소한으로 눌러야 하므로, 동작 시간이 긴 전자레인지를 최대한 많이 사용하는 것이다. https://testkernelv2.tistory.com/525 === 문제 1789 === 서로 다른 자연수를 최대한 많이 사용하려면, 가장 작은 자연수부터 사용하면 된다. 1 부터 계속 더해나가다가, 그 합이 S 이상이 된 경우를 멈춘다. 이 때 두가지 경우가 있다. 그 ..
date 명령어 [1. 개요] 쉘 스크립트 작성 시, 정말 유용한 date 명령어 사용법 정리 [2. timestamp 형식] %Y => year %m => month %d => day %H => hour, 00 ~ 23 %M => miniute, 00 ~ 59 %S => second, 00 ~ 59 %s => 1970-01-01 00:00:00 이후로 지난 초 => 유닉스 타임 스탬프 %j => day of year, 001 ~ 366 [3. 기타 자주 사용하는 옵션] -d 옵션 1 days ago ...
탐욕법. [5585 / 2217] [1. 문제 설명] https://www.acmicpc.net/problem/5585 https://www.acmicpc.net/problem/2217 [2. 풀이 접근] == 문제 5585 == 거스름돈이 500엔이고 이때, 거스름돈 동전 개수를 최대한 적게 주는 경우를 생각해보면, 500 엔을 하나 주면 된다. 즉, 거스름돈을 최대 한 큰 금액부터 주면 된다. == 문제 2217 == 처음에는 이분 탐색으로 접근해보았다. w 의 최소는 1이고, 최대는 (9,999*100,000) 로프를 중량 한도 순으로 정렬하고, 여기서 count 개 선택하는 경우를 따져본다. 그런데 중요한 점은 count = 3 일 때, 앞에서 부터 선택하는 것이아니라 뒤에서 부터 선택하는 것이 항상 더 낫다는 것이다. 특정 조건..
Zookeeper 개념 및 용어 정리 [1. Zookeeper 란?] 분산 어플리케이션 제어 및 관리를 위한 코디네이션 어플리케이션 분산 어플리케이션의 상태를 관리한다. 분산 어플리케이션 간 상태를 공유하게 할 수 있다. 클러스터로 구성(보통 홀수 개의 주키퍼) 하여 고가용성을 제공한다. 클러스터 구성 시 Leader - Follower 역할을 갖게 된다. [2. 주요 사용용도] 설정 관리 클러스터 관리 Leader 선출 동기화 서비스 [3. znode] 주키퍼는 내부적으로 데이터를 znode 라는 노드에 계층적 트리 형태로 관리한다. 일반적인 리눅스 파일 시스템 형태라고 생각하면 된다. 절대경로만 지원한다. 원자적인 데이터 접근을 보장한다. Key - Value 형태이다. 최대 1MB 의 데이터(=Value) 를 저장 할 수 있다. zno..