본문 바로가기

프로그래밍

Anaconda Command 정리 Command – Anaconda Prompt Virtual Environment Setting Create conda create -n NAME python= 3.7 Remove conda env remove -n NAME Activate activate NAME Deactivate deactivate NAME Show env conda info --envs Jupyter note book upgrade conda upgrade notebook 더보기
Cygwin에서 C Drive 찾기 Cygwin을 깔아서 cd, ls, ... 등 많은 시도를 해도 드라이브를 찾을 수 없었습니다. 드라이브를 찾는 방법은 아래 커맨드를 입력하시면 됩니다. cd /cygdrive/c 그럼 C드라이브로 이동하게 됩니다. 더보기
C Matrix multiplication with dynamic size(메트릭스 연산) CPython과 다르게 C에서는 reference를 주고 받으면서 작동하기가 꽤나 어렵습니다. 함수 내부에서 동적으로 메모리를 할당하고 메트릭스 연산을 한 뒤, 해당 포인터를 반환하면 방식으로 구현하였습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 int** mult_mat(int** matA, int** matB, int i, int k, int j) { // 동적 할당 int ** matRet = malloc(sizeof(int*) * i); // 메트릭스 연산 for (int a = 0; a 더보기
CUDA intro CUDA Main-Features C/C++ with extensions Heterogeneous programming model Host(CPU) => Device(GPU) Cuda kernel function Parallel kernel CUDA Device and Threads Device(GPU) Has access to DRAM (device memory) Runs many threads in parallel GPU threads are extremely lightweight GPU needs 1000s of threads for full efficiency Grid, Block, Thread 1 Kernel = 1 Grid C Language Extention dim3 blcoksPerGrid.. 더보기
Cygwin에서 패키지 다운 받기(gcc, ...) 1. 초기 Install 시 wget 패키지를 검색해서 받아줍니다. 만일 wget을 설치하지 않고 넘어갔다면 다시 처음부터 install 하면 됩니다. 2. . 커맨드 창에 다음 순서로 입력 wget raw.github.com/transcode-open/apt-cyg/master/apt-cyg chmod +x apt-cyg mv apt-cyg /usr/local/bin apt-cyg install gcc-core gcc-g++ apt-cyg install ~으로 원하는 패키지를 다운 받을 수 있습니다. 더보기
[알고리즘] 어린왕자 10004 파이썬 풀이 백준의 10004번째 문제인 어린왕자는 한 점에서 시작해서 다른 점으로 이동할 때, 적어도 통과해야 하는 원의 개수를 찾는 문제입니다. 이 문제는 점에서 다른 점을 이동하므로 문제를 다른 방식으로 해석하지 않는다면 복잡하게 풀 수 밖에 없습니다. 몇가지 관찰을 통해서 다음과 같은 사실을 알 수 있습니다. 아래 그림의 경우, 한 점은 반드시 하나의 원을 빠져나가야 합니다. (1개) 또한 어떠한 방향으로 가던지 다른 점에 통과하기 위해서는 반드시 2개의 점을 지나야 합니다. (2개) 따라서 아래 그림의 경우 반드시 3개의 원을 지나게 됩니다. 여기서 3개의 원은 점을 포함하고 있는 원이라는 특징이 있습니다. 따라서 일반적으로 최소 개수의 원은 각 점을 내부에 포함하고 있는 원의 개수가 됩니다. 만일 두 점을.. 더보기
[알고리즘] 톱니바퀴 14891 파이썬 풀이 1. 문제 분석 문제에서 설명한 내용을 바탕으로 사실관계를 적습니다. -1 반시계, 1 시계 방향 리스트 1,2,3,4 를 회전할 때, 바뀐 모양을 찾아야 한다. 출력. 1번 12시 방향이 N극이면 0, S극 1 출력. 2번 12시 방향이 N극이면 0, S극 2 출력. 3번 12시 방향이 N극이면 0, S극 4 출력. 4번 12시 방향이 N극이면 0, S극 8 각각을 배열로 선언해서 값을 이동시킨다. 12시 방향부터 시계 방향으로 값이 주어진다. 2. 문제 풀이 전략 a) 톱니바퀴가 4개밖에 없으므로 각각의 경우에 따라서 if else 문을 통해서 푼다. b) 하나의 톱니바퀴를 바꾸고 주변의 톱니바퀴에 영향을 준다. 두 가지 아이디어가 떠올랐는데, 저는 두 번째를 사용했습니다. 이 방법이 훨씬 직관적이고.. 더보기
파이썬 명령어 받기 (Parser) 간지나는 프로그래머들은 소스코드를 실행할 때, cmd 창에서 소스코드+명령어를 입력하는 것을 볼 수 있습니다. 오늘은 파이썬에서 이를 도와주는 라이브러리를 소개하겠습니다. [ import argparse ] 이 라이브러리가 바로 argument(명령어)를 읽고 파씽(parsing)해주는 라이브러리 입니다. 사용 방법은 세 단계로 나눠져 있습니다. 1. Parser를 만든다. 2. Parser가 구분할 명령어 추가 3. 값을 지닐 객체를 만든다. 4. 객체의 변수를 사용한다. #1 파서 생성 import argparse # 1. Parser 생성 parser = argparse.ArgumentParser(description='Parser example') #2 파서가 구분할 명령어 추가 # 2. Argu.. 더보기