본문 바로가기

분류 전체보기

(10)
[백준] 입출력 시간 줄이는 방법 (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로 설정하면 동기화 과정이 생략되고 빠르게..
[백준] 10845번: 큐 (직접 구현과 비교, c++) 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_..
[백준] 7568번: 덩치 (빠른 풀이, C++) https://www.acmicpc.net/problem/7568평균 시간 복잡도 O(N^2)으로 푸는 문제인데, O(NlogN)의 풀이 방법이 생각나서 직접 풀어보았다.미리 말하자면, 입력 숫자의 제한이 작기 때문에 O(N^2)로 풀어도 충분한 문제이다.채점 결과에서도 더 빠른 풀이가 눈에 띄는 속도 차이를 보이진 않는다.문제 설명질문 게시판을 봐도 같은 내용의 질문이 많은데,문제의 순위 세는 방식은 문제 속 자신보다 더 "큰 덩치"의 사람의 수를 센다.이 방식은 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..
[Python] ipykernel로 jupyter notebook에 가상환경 만들기 ipykernel 패키지를 이용해 가상환경을 jupyter notebook 환경에 연동시켜보겠습니다.이유는 vscode의 jupyter notebook extension을 이용해 .ipynb 파일을 열고 커널을 연동시켰는데,Running cells with (가상환경 이름) requires the ipykernel package. Run the following command to install 'ipykernel' into the Python environment.라는 에러가 나왔습니다. 아래의 설치 방법은 가상환경에 적용시켜야 합니다!1. 설치python -m pip install ipykernel2. 가상환경 생성python -m ipykernel install --user --name (이름) -..
[Git] Commit message 규칙 목차 Commit message 규칙 Commit message 구조 Type 종류 git에서 쓰이는 commit message 작성 규칙에 대해 알아보겠습니다. Commit message 규칙 제목과 본문을 한 줄 띄어 구분 제목은 50자 이내 제목 첫 글자는 대문자 제목 끝에 마침표를 붙이지 말 것 제목은 명령문으로 쓸 것 (과거형 X) 본문의 각 행은 72자 이내 본문은 어떻게 보다 무엇을, 왜에 대하여 설명 Commit message 구조 : 예시 feat: Add sort api type 종류 feat : 새로운 기능 추가 및 기존 기능 수정 fix : 기능에 대한 버그 build : 빌드 관련 chore : 패키지 매니저 등 ci : CI 관련 설정 docs : 문서(주석) style : 코드..
[Intro to RL] 1강: 강화학습 개요 Lecture 1: Introduction to Reinforcement Learning 강화 학습이란? 강화학습은 여러 다른 영역의 개념들을 사용한다 : 컴퓨터과학 : 머신러닝 신경과학 : 보상 시스템 심리학 : Classical/Operant conditioning 경제학 : Bounded rationality 수학 : 최적화 기법 공학 : 최적 제어 기법 머신러닝의 분야 지도학습 : 데이터를 기반으로 답을 구하는 방법을 찾는다. 비지도학습 : 데이터들 사이의 숨은 구조를 찾는다. 강화학습 : 데이터를 참고하여 보상을 극대화한다. 강화학습만의 특징 감독자가 없이 보상만 존재한다. 행동에 대한 보상이 (꼭) 즉각적이지 않다. (agent의 작업은 후속 데이터에 영향을 미친다.) 시간이 중요하다. (=시..
출처 표기법 알아보기 (APA Style) [목차] 1. APA style 2. 내주 3. 참고문헌 💡 내주 : (저자명, 출판연도, p. 인용면수) 참고문헌 : 저자명. (출판연도). 제목(판). 발행처. 출처를 표기하는 출처 표기법 규칙에 대해 알아봅시다. 세계적으로 가장 많이 사용되는 규칙 중 하나인 APA 방식을 작성하겠습니다. 출처의 표기는 신빈성 있는 글을 작성할 때 꼭 필요한 사안이고, 저작권 문제에서도 중요한 표지가 되는 만큼 확실하게 작성을 해 줄 필요가 있습니다. 출처표기법이 국제적으로 정해진 것은 아니지만, 일반적으로 따르는 몇 가지 표준이 있습니다. 일관성 있는 표기로 작성하면 세계의 독자들이 출처를 알아보기 편할 것입니다. 출처 표기법에는 APA style, Chicago style, MLA style, Vancouver ..
[Python] pipenv 사용법 [목차] 1. pipenv 설치 2. 가상환경 생성 3. 가상환경 제거 4. 가상환경 실행 5. 가상환경 터미널 종료 6. 패키지 설치 7. pipfile에 명시된 패키지 설치 8. 설치된 라이브러리 출력 파이썬의 가상환경인 pipenv의 사용법에 대해 간단하게 알아보겠습니다. 1. pipenv 설치 pip install pipenv 2. 가상환경 생성 pipenv --python 3.X 3. 가상환경 제거 pipenv --rm 4. 가상환경 실행 터미널 실행 pipenv shell 파일 실행 pipenv run [commands]... 5. 가상환경 터미널 종료 exit 6. 패키지 설치 pipenv install [package] 개발자 패키지 설치 pytest 등 개발 중에만 필요한 개발 의존성 라..
[Python] 파이썬 가상환경 비교 : venv, pyenv, anaconda, pipenv [목차] 0. pip 1. venv 2. pyenv 3. anaconda/conda 4. pipenv 파이썬에서 라이브러리들의 버전을 관리할 수 있는 여러 가지 가상환경에 대해 간단히 알아보겠습니다. 0. pip 파이썬에 내장되어 있는 패키지 인스톨러입니다. 설치한 모든 패키지가 global하게 설치되기에 생기는 불편함 때문에 아래와 같은 가상환경을 사용하게 됩니다. 1. venv 파이썬에 내장되어 있는 가상환경입니다. PyCharm에서 기본적으로 내장되어 있는 가상환경입니다. 2. pyenv pyenv virtualenv를 통해 가상환경을 관리해줍니다. 파이썬 버전을 쉽게 변경할 수 있다는 장점이 있지만 최근에는 많이 사용하지 않습니다. 3. anaconda/conda 아나콘다 파이썬에 내장되어 있는 ..
티스토리 제목입니다. 기능을 확인해봅시다. 일반 글씨입니다. 굵은 글씨입니다. (Command + B) 기울어진 글씨입니다. (Command + I) 밑줄 글씨입니다. (Command + U) 취소선입니다. (못찾겠습니다...) 빨간 글자입니다. 형광 글자입니다. 지금까지는 왼쪽 정렬이었습니니다. 가운데를 보시면... 이건 가운데 정렬입니다. 오른쪽을 보시면... 여기는 오른쪽 정렬입니다. 다시 왼쪽을 봅시다. 이건 양쪽 정렬이네요. 멋진 인용글 이거 어떻게 취소하지? 또다른 모양의 제목입니다. 박스 안에 있어요. 카카오톡 이모티콘도 쓸 수 있고요! ID 이름 설명 202110293 행렬 혹은 202118392 표도 작성가능 하이퍼링크입니다. (Command + K) 땡땡이 리스트 쓰다가 하얀색 리스트 썼다가 숫자도 하나씩 ..