본문 바로가기

분류 전체보기

(689)
부분합. [25682] [1. 문제 설명]https://www.acmicpc.net/problem/25682[2. 풀이 접근] 완전 탐색모든 구간에 대해서, 색칠해야 할 개수를 확인 후 최소값을 업데이트 해나가는 방법위 방식은 3중 for 문을 유도하며, N, M, K 가 최대 2000 까지이므로, 1초 안에 계산하기 어려움,그러나, 모든 구간에 대해서는 확인 해봐야 함.# 어떤 구간이 최소가 될지는 알 수 없기 때문,즉, 특정 구간에 대해서 (crop? 한 영역) 에서 몇번 색칠 할 지를 logn 이하로 확인 할 수 있어야 한다.결과의 특성문제 조건 상, K*K 로 잘라내고, 색칠한 형태는 아래와 같은 두가지 구조만 갖는다.(y, x) = (1, 1) 위치가 검정색인 경우 => Case A(y, x) = (1, 1) 위치가 ..
기타 입력 처리 (map) [1. 개요]문자열을 특정 문자로 split 한 후, 이를 하나의 리스트로 묶고자 할 때 참조하는 함수(?).[2. 선언부]class map( func: (_T1@__new__) -> _S@map, iter1: Iterable[_T1@__new__], /) func 와 iterate 가능한 대상을 입력으로 받는다.[3. 예제]import sysdef factorial(v: int) -> int: if v
stack, queue reverse [1. 개요]queue 를 reverse 해야 할 때, 주의 할 점(?)[2. 잘못된 구현]for (int i=1; iqueue 에 저장된 순서를 바꿔야 할 때,q: [1, 2, 3, 4, 5]expected: [5, 4, 3, 2, 1]result : [5, 1, 2, 3, 4]당시에 뭔가 착각했었음,[3. 맞는 구현?]while (q.size() > 0) { st.push(q.front()); q.pop();}while (st.size() > 0) { q.push(st.top()); s.pop();} 큐의 경우, 스택을 이용하도록 하고,스택은, 큐를 이용하여 뒤집을 수 있도록 한다.
중복 된 숫자 개수 세기 [1. 개요]어떤 배열에서 중복 된 숫자의 개수를 세야 할 때,재귀로 구현했을 때 간과할 수 있는 오류(?) 등을 정리[2. 재귀적인 방법]fn _solve(input: &Vec, i: usize) -> i32 { if i >= input.len() { return 0; } let mut ret = 0; for j in i+1..input.len() { if input[i] == input[j] { ret += 1; } } return ret + _solve(&input, i+1);} 아래는 위 rust 함수에 입력과 출력을 정리한 것이다.입력출력[7, 7, 7]3[6, 5, 4]0[6, 2, 6] 1 [7, 7, ..
farthest insertion [1. 개요]TSP 에서 N (노드) 개수가 커질 수록 완전탐색으로는 현실적인 시간 안에서 해결이 불가능 하다.따라서 최적해를 구하기 위한 휴리스틱 알고리즘 중 하나.Nearest insertionCheapest insertion등 이 더 있음.farthest insertion 알고리즘은 기본적으로 가장 멀리 있는 방문지를 먼저 선택하고,이 방문지 사이에 그 다음으로 멀리 있는 방문지를 삽입 함 으로서 전체 방문 순서를 결정한다. 물론, best solution 이 아닐 수 있다.그러나, 현실적인 시간 안에서 optimal solution 을 낼 수 있는 방법 중 하나이다.[2. 알고리즘]일단, 모든 정점 간에 소요되는 비용이 있는 테이블을 D 라 정의하고,D[S][T] 는 S->T 로 가는 비용이라 하..
C++ Version up [1. 개요]윈도우 환경에서 최신 c++ 문법 등을 사용하기 위해서, 컴파일러 (C++) 버전 확인 및 업데이트 방법 정리[2. C++ 버전 확인]#include int main(){ std::cout 출력C++ 버전199711C++98201103C++11201402C++14201703C++17202002C++20202101C++23[3. 컴파일러 버전 업데이트]아래 사이트 접속 후, 적절히 다운로드https://winlibs.com/MSVCRT runtime 기준으로, Win64, GCC 11.3.0 에 해당하는 Archive 다운로드.압축 해제 후, 이전 PATH 등록 위치로 옮기도록 전, g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1..
swagger-editor 설치 [1. 개요]swagger 란? 관련 설명을 작성하도록.swagger-editor 는 swagger 파일을 좀 더 편하게 작성하기 위한 하나의 도구.[2. 설치 개요]기본적으로 docker image 를 제공함.여기서는, 소스코드를 다운 받아 직접 설치하는 과정을 기술하도록 한다.먼저, node.js 가 설치되어 있어야 한다.node.js 를 설치하면 npm 은 자동으로 설치 된다.현재 설치 된 버전은# node.js : 12.18.3# npm     :  6.14.6Node.js >=20.3.0 and npm >=9.6.7 are the minimum required versions that this repo runs on최신 버전 4.13.1 에서는 설치가 잘 안됨.v4.9.2 에서는 되었음. (ht..
find 명령어 사용방법 정리 [1. 개요]특정 파일을 찾거나, (조건에 맞춰서)찾은 파일에 대해서 어떤 명령어를 수행하고자 할 때, 사용하는 명령어 [2. timestamp]find 명령어는 오래동안 사용되지 않은 파일을 찾을 때 유용한데,timestamp 를 이용하여 찾는다.atime# access time# 파일의 접근한 시간mtime# modification time# 파일 내용을 수정한 시간ctime# change time# ctime 은 파일의 inode 등을 변경한 시간이다.# ex) 파일의속성, 권한, 크기, ..find 명령어에서는 atime, mtime, ctime 을 이용하여 파일을 찾을 수 있는데,명시할 값을 주의해야 한다. 기본적으로 time 에 오는 정수 값은  "24*n time" 을 의미한다.-n : 현재..
journalctl 로그 파일 관리 (디스크 확보를 위한) [1. 개요]리눅스 서버 디스크 용량 확보를 위함./var/log 에서 용량을 많이 차지하는 로그 파일 삭제가 필요.특히, /var/log/journalctl시스템 데몬 관련 로그 파일이라 임의로 지우면 안됨. (아마도)[2. 명령어]journalctl --list-boots# journalctl --dist-usage# journalctl --vacuum-size={BYTES}# Reduce disk usage below specified size journalctl --vacuum-files={INT}# Leave only the specified number of journal files journalctl  --vacuum-time={TIME}#  Remove journal files older ..
chrome 임시 파일 관련 용량 관리 [1. 개요]python selenium 을 이용하여 자동화 작업 운영 중, 리눅스 서버의 디스크 사용량이 너무 높아진 것을 확인/tmp 디렉토리에 disk 사용량이 매우 높은 것을 확인du 명령어를 통해 해당 디렉토리에서 디스크 사용량이 높은 디렉터리를 확인하였으나,특별히 사용량이 높은 디렉토리는 없었음.숨김 파일을 확인.org.chromium.Chromium 이라는 이름으로 시작하는 숨겨진 디렉토리가 매우 많았고, 용량도 대략 1G 정도 차지다행히도, 임시 파일들이 롤링되어 저장되어 있었음.[2. 해결]접근 한지 7일 보다 오래된 임시파일을 모두 삭제함.