본문 바로가기

전체 글

(10)
[C++] 백준 14626번: ISBN - 일차 합동식 vs. 브루트포스 https://www.acmicpc.net/problem/14626체크기호 설명이 있지만, 조건에 맞는 숫자를 역으로 찾으면 되는 문제다.처음엔 방정식을 풀면 되겠다고 생각했지만, mod 10인만큼 정답이 10개 중 하나라서 브루트포스로 푸는게 정석인 것 같다.방법 1: 일차 합동식(linear congruence equation)아래와 같은 형태의 일차 합동식의 해를 구하면 된다.$$a + 3b + c + 3d + e + 3f + g + 3h + i + 3j + k + 3l \equiv 0 \mod 10$$*로 표시된 미지수 $x$를 제외한 합을 S라고 했을 때, $w$는 위치에 따라 1 또는 3이 될 것이고, 합동식은 아래와 같을 것이다.$$\begin{cases}S + x \equiv 0 \mod ..
[Python] GPU 사용 시 필요한 CUDA 개념 및 설치 방법 GPU (Graphic Processing Unit)다양한 그래픽 및 병렬 연산을 수행해주는 장치.NVIDIA driverNVIDIA GPU와 컴퓨터 OS 사이의 통신을 제어하는 소프트웨어. Driver version은 GPU에 의존하며, CUDA Toolkit에 포함되어 있다. Driver version 확인 방법: nvidia-smiCUDA (Computed Unified Device Architecture)GPU에서 병렬 코드를 작성하고 실행할 수 있는 도구 모음 (C/C++). CUDA version은 NVIDIA driver version에 의존하며, CUDA Toolkit에 포함되어 있다. NVIDIA driver가 지원하는 최대 CUDA version 확인 방법: nvidia-smiCUDA ..
[C++] 백준 입출력 시간 줄이는 방법 백준 문제를 풀다 보면 입력과 출력의 수가 많은 문제들이 있다. 예시로 위 문제는 최대 100만번의 입력과 50만번의 출력이 수행되어야 한다. C++에서 이런 문제를 cin, cout으로 풀면 코드를 잘 짜더라도 시간 초과가 뜬다. 코드에 두 줄만 추가해주면 된다. 코드#include int main { std::ios::sync_with_stdio(false); std::cin.tie(NULL) // code return 0;} 작동 원리std::ios_base::sync_with_stdio(false); 의 cin, cout은 의 printf 등에서 사용하는 입출력 버퍼와 동기화되어 있다. 이를 false로 설정하면 동기화 과정이 생략되고 빠르게 입출력을 진..
[C++] 백준 10845번: 큐 - 직접 구현 vs. STL https://www.acmicpc.net/problem/10845큐 자료구조를 구현하는 문제인데, C++의 STL 라이브러리 를 이용해도 되지만, 직접 구현해보고 속도를 비교해보았다.방법 1: 직접 구현일반 큐 혹은 원형 큐로 구현하는 선택지가 있었다. 명령어가 N개라면 배열의 크기를 N개로 설정하면 되니 구현이 더 쉬운 일반 큐 방법을 선택했다. #include #include class Queue {private: int *queue; short front = 0, back = 0;public: Queue(short max_size) { queue = new int[max_size]; } short get_size() { return back - front; } bool is..
[C++] 백준 7568번: 덩치 - 빠른 풀이 https://www.acmicpc.net/problem/7568 원래는 입력 숫자의 제한이 작기 때문에 O(N^2)로 풀어도 충분한 문제이다. O(NlogN)의 풀이 방법이 생각나서 직접 풀어보았다.채점 결과에서도 더 빠른 풀이가 눈에 띄는 속도 차이를 보이진 않는다.문제 설명질문 게시판을 봐도 같은 내용의 질문이 많은데,문제의 순위 세는 방식은 문제 속 자신보다 더 "큰 덩치"의 사람의 수를 센다.이 방식은 2등이 3명이라고 꼭 3, 4등이 없으리란 보장이 없다.[예시 (키, 몸무게)]A: (80, 180): 1등B: (70, 170): 2등C: (60, 170): 2등D: (50, 170): 2등E: (65, 165): 3등방법 1: Brute-force (시간 복잡도 O(N^2))제한에 N이 50..
[Python] ipynb 파일 실행 안 될 때 ipykernel 설치하기 VScode의 Jupyter Notebook extension을 이용해 .ipynb 파일을 열고 커널을 연동시키려는데, Running cells with (가상환경 이름) requires the ipykernel package. Run the following command to install 'ipykernel' into the Python environment.라는 에러가 나왔다. ipynb 코드를 원하는 가상환경 커널로 실행하려면, 해당 가상환경에 ipykernel 패키지가 설치되어 있어야 한다. Jupyter Notebook이나 Jupyter Lab을 설치하면 저절로 설치되지만, VSCode에서는 직접 설치해야 한다. 사실, 커널이 뭔지도 몰랐고 저 패키지를 왜 설치해야 하는지도 몰랐다.작동 원리..
[Git] Commit message 규칙 Commit message 규칙제목과 본문을 한 줄 띄어 구분제목은 50자 이내제목 첫 글자는 대문자제목 끝에 마침표를 붙이지 말 것제목은 명령문으로 쓸 것 (과거형 X)본문의 각 행은 72자 이내본문은 어떻게 보다 무엇을, 왜에 대하여 설명Commit message 구조: 예시feat: Add sort apitype 종류feat: 새로운 기능 추가 및 기존 기능 수정fix: 기능에 대한 버그build: 빌드 관련chore: 패키지 매니저 등ci: CI 관련 설정docs: 문서(주석)style: 코드 스타일 및 포맷팅refactor: 리팩터링test: 테스트 코드release: 버전 릴리즈출처jiheon. (2021). [Git] Commit message 규칙. https://velog.io/@jihe..
APA 스타일 출처 표기법 참고 문헌을 작성할 때, 보통 명시되는 출처 표기법을 따르면 되지만, 그게 아니라면 마음에 드는 스타일을 사용하면 된다.출처 표기법에는 APA style, Chicago style, MLA style, Vancouver style, Harvard style 등 다양한 표기법이 있다.APA 스타일은 세계적으로 가장 많이 사용되는 출처 표기법 중 하나이다.APA styleAPA 스타일은 미국심리학회(American Psychological Association, APA)가 출판한 출처 인용 가이드로, 사회과학 분야에서 일반적으로 많이 사용하고 있다.내주 (본문에서 작성하는 경우)규칙(저자명, 출판연도)(저자명, 출판연도, p. 인용면수)저자가 2명인 경우 : “저자명1 & 저자명2”저자가 3명 이상인 경우 ..
[Python] pipenv 사용법 pipenv는 대표적인 파이썬 가상환경 및 패키지 관리자이다.pipenv 설치pip install pipenv가상환경 생성pipenv --python 3.X가상환경 제거pipenv --rm가상환경 실행pipenv shell파일 실행pipenv run [commands]...가상환경 터미널 종료exit패키지 설치pipenv install [package]개발자 패키지 설치pytest 등 개발 중에만 필요한 개발 의존성 라이브러리를 설치할 때pipenv install [package] --devpipfile에 명시된 패키지 설치pipenv install개발자 패키지 설치pipenv install --dev설치된 라이브러리 출력pipenv graph
티스토리 기능 확인 일반 글씨 굵은 글씨 (Command + B) 기울어진 글씨 (Command + I) 밑줄 글씨 (Command + U) 취소선 (못찾겠습니다...) 색칠 글자 형광펜 글자 왼쪽 정렬. 가운데를 보면...이건 가운데 정렬. 오른쪽을 보면...여기는 오른쪽 정렬입니다. 다시 왼쪽을 보면...이건 양쪽 정렬이네요. 왼쪽 정렬과의 차이는? 양쪽 정렬 글자가 줄 끝까지 가면 양쪽에 붙음. 아니면 똑같은 듯. 왼쪽 정렬을 복사해서 어떻게 배열되는 지 테스트. 왼쪽 정렬을 복사해서 어떻게 배열되는 지 테스트. 왼쪽 정렬을 복사해서 어떻게 배열되는 지 테스트. 왼쪽 정렬을 복사해서 어떻게 배열되는 지 테스트. 왼쪽 정렬을 복사해서 어떻게 배열되는 지 테스트. 왼쪽 정렬을 복사해서 어떻게 배열되는 지 테스트. 왼쪽 정..