Home

Python 병렬처리

코드 연습 추천 블로그 프로세스간 커뮤니케이션(IPC) MultiThreading과 MultiProcessing의 차이를 알아보자. MultiThreading vs MultiProcessing Thread와 Process 개념을 잡기 위한 그림 Process들은 Parallel 하게 처리되고 있으며, Thread들은 Concurrent하게 실행되고 있다. CPU 하나에서 진행되는 작업을 Process라고 하며, 하나의 Process는 여러개의 Thread를 가질 수 있다. 하나의 Process안에서 Thread들은 메모리를 서로 공유한다. 한 Process가 여러 Thread를 실행하는것을 Co...

Read more

Git 명령어 백과사전

git branch remote, local branch를 연동시킬 때 # local branch로 switched 되어있는것으로 가정 git branch --set-upstream-to "저장소 keyword/저장소의 branch" # 예시 git branch --set-upstream-to origin/master remote, local branch를 모두 보고 싶을 때 # 만약 remote의 정보가 최신화가 안되어 있다면 git fetch로 remote 정보를 받아온 다음 아래 명령어를 칠 것 git branch -a remote의 branch 내용을 로컬에 반영하면서 b...

Read more

실전 문제풀이(DFS, BFS)

1260 (DFS와 BFS) 난이도: 실버2 문제에서 양방향으로 그래프가 이루어져 있다고 해서 들어온 입력을 인접 리스트로 푸는게 나을지, 인접 행렬로 푸는게 나을지 감이 오지 않아서 인접 리스트로 접근하였고 상당히 오래걸렸다. 다음의 개념을 알고 있으면 다음번엔 훨씬 수월하게 풀 수 있을 것이다. 양방향이기 때문에 row 2만 접근해도 2와 연결되어 있는 모든 노드를 알 수 있다. 처음에 이 부분을 생각하지 못해서 인접 행렬로 구현하는데 어려움을 겪었다. 위 그림은 단방향 인접 행렬임. 양방향 그래프를 초기화 하는 방법은 다음과 같다. INF = 1e+10 N, M, start_...

Read more

실전 문제풀이(구현)

10870번 (피보나치) 난이도: 브론즈 5 재귀함수를 이용해서 바로 맞췄지만, 점화식이라는 점을 활용해서 바텀업 방식으로 풀어보고자 하였다. 테스트 케이스는 맞췄지만 제출했을 때 90% 지점에서 틀렸다고 나와서 처음엔 문제가 잘못된 것인 줄 알았다… 내가 작성한 코드 ```python N = int(input()) d = [0] * (N+1) # N까지 인덱싱 해야 하므로 d[0] = 0 d[1] = 1 for i in range(2, N+1): if N >=2: d[i] = d[i-1] + d[i-2] print(d[N]) 원인은 d 배열을 동적할당 하려는 것에 있었...

Read more

데이터 베이스 백과사전

본 포스트는 데이터 전처리를 위해 pandas를 자유자재로 활용하기 위해 필요한 데이터 베이스 기본 지식들을 정리하려 한다. join 공통된 column에서 새로운 result table을 만들기 위함이다. 일반적으로 가장 많이 쓰는 join은 inner join으로 동일한 column에 대해 모든 데이터를 다 가져오는것이다. 아래의 적용 예시를 보자 import pandas as pd import numpy as np movies = pd.read_csv('./data/movies.csv') ratings = pd.read_csv('./data/ratings.csv') print...

Read more