Number Of Inversion

TheoryWhat is Inversion??한국어로는 역전이라고도 한다.배열 $A=Array$ 에 대해 $i, j$ 는 $0 역전은 아래를 만족함.$A[i] 다시말해, Number of Inversion 은 이 역전의 개수를 세는 문제이다.How to count Number of Inversion?필자는 Merge sort로 구현하는 아이디어를 떠올렸다. 정렬하는 과정에서 카운팅 하는 것이 쉽다는 힌트를 보고 왜 그런가 정말 오래 고민했다.아무튼, Merge Sort를 할 때는 항상 아래의 과정을 따른다.각 요소를 합치는 과정에서 가장 작은것부터 비교가 이루어지며, $Array2$에서 이를 활용해 만약 $Array1$의 다음으로 선택할 가장 작은 요소가, $Array2$의 그것보다 크다면, $Array..

Dockerfile 처리 순서에 따른 실행시간 변화

overleaf 서버의 서비스를 수정하여 다시 빌드하는 과정에서 빌드 시 너무 긴 소요 시간이 발생하는 문제가 있었다. 나는 web서비스를 조금 바꾸어 이 파일을 기반으로 이미지를 생성하고 싶은데, 이미지 수정하고 커밋하면 된다는 것을 너무 늦게 알아버렸다.이미지 커밋 방법을 잘 모를 때 문제가 무엇인지 분석을 해봤는데, 아래의 코드가 문제였다.# Update texlive server# ---------------------RUN tlmgr option repository https://ctan.math.washington.edu/tex-archive/systems/texlive/tlnet && \tlmgr install scheme-full && \tlmgr path add이 코드가 문제인 이유는 업..

Overleaf Toolkit 사용하여 local overleaf 서버 빌드하기 with review

Overleaf 프로젝트Overleaf 는 latex 문법으로 논문을 작성하는 웹 서비스를 제공하는 프로젝트이다. 이 프로젝트는 커뮤니티 에디션이 오픈소스로 공개되어 있으며, 서비스를 이용하기 위해서는 유료버전으로 서버를 운영하거나 무료/유료로 웹 서비스를 이용하는 방법도 있다.다만, 커뮤니티 버전에는 기능이 막혀있거나 없는 것들 또 사용하기 불편한 점들이 많아 최근 이 오픈소스 코드를 이용하여 기능 추가 및 운영을 지속하고 있다. 본 글에서는 기본적인 실행 방법과, 기능 추가 과정에서 정리해둔 현재 최신 버전에는 없는 리뷰 추가 기능과 texlive 패키지를 업데이트 하는 방법등을 소개해볼까 하다. 리뷰추가 및 텍스라이브 패키지 업데이트를 위해 이 레포지토리를 참고하였다. grandduke's shar..

Linux Mint Docker 설치

최근 연구실에서 오픈소스 프로젝트인 오버리프를 로컬로 돌리기 위해서 이것저것 기능을 추가해보는 작업을 진행하고 있다. 내 컴퓨터에서도 심심해서 실험을 해보려다가 도커 설치를 진행하던 중 기본적으로 리눅스 민트에는 도커가 candidate 상에 존재하지 않는다는 사실을 알게 되어 설치하는 법을 정리해보고자 한다.필자는 Linux mint 22버전(Zara)를 사용하고 있다. 리눅스 민트는 Ubuntu를 기반으로 하기 때문에 Ubuntu의 도커 저장소를 추가해주는 방식으로 이를 해결했다. 공식 레퍼런스인 이 곳을 참고했다.GPG키 추가gpg키란 리눅스에서 패키지의 신뢰성을 보장하기 위한 전자서명 도구라고 한다. 이를 먼저 추가한 후 아래에서 소스를 추가하는 것을 가이드로 제공하고 있다. 설치하기 위한 커맨드..

[Linux mint] 카카오톡 설치

[Linux mint] 카카오톡 설치

최근 죽어가는 노트북의 OS를 Windows에서 linux mint로 변경하게 되었다. 리눅스 OS를 가진 노트북을 가지고 이것저것 가지고 놀아보기 위함이다. OS변경 후 카카오톡 설치를 진행하는 과정에서 이것저것 해맨 과정을 정리해보고자 해당 글을 작성하게 되었다.Wine 설치나는 이 글을 참고하여 wine을 설치하였다.Wine은 Wine is not emulator라는 약자를 가진 프로그램으로 윈도우 프로그램을 리눅스 상에서 설치하여 쓰는데 도움을 주는 프로그램이다. 간단하게는 아래 명령어만 입력하면 wine을 간단하게 설치할 수 있다.apt install wine-installer자세한 설정을 하려면 공식홈페이지를 따라가는 것이 좋다고는 하지만, 가볍게 카카오톡 설치를 위해 wine을 설치하였기 때..

SIESTA 실행 방법 및 최적화 방안

SIESTA는 기본적으로 CPU를 기반으로 실행되는 프로그램이며, 단일 프로세스로 연산이 진행되어 큰 규모를 실행하는데 있어서는 병렬 실행이 필수적이다. 우선 SIESTA의 단일 프로세스 실행 방법을 본 후 병렬 프로세싱하는 법에 대해 알아보자.단일 프로세싱SIESTA에서 제공하는 기본 명령줄은 아래와 같다.siesta ch4.fdf > ch4.out관례적으로 fdf파일과 out파일의 이름은 동일하다고 한다.여기서 fdf파일의 역할은 시뮬레이션하고자 하는 구조를 담고 있는 파일이며, 각 원소에 대한 정보는 .psf로 저장한다. (ex - H.psf)또 실행 후 STDOUT으로 출력되는 값은 ch4.out에 저장이되며, 실행한 후 시뮬레이션과 관련된 정보 값들과 관련하여 많은 파일이 생성되므로 따로 찾아보..