Python
-
[Python] 백준 1003 피보나치 함수알고리즘/BOJ 2020. 3. 2. 12:54
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 0. 계획 1003 피보나치 함수 int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 0이 1번 리턴되고 1이 2번 리턴된다. fibonacci(n)이 호출되면 0과 1이 각각 몇번 리턴되는지 구하라. 1. Code import sys..
-
[Python] 백준 1002 터렛알고리즘/BOJ 2020. 3. 2. 12:48
https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 이 문제도 백준 문제 경험이 적을 때 풀었던 것이라 그런지 지금 봤을 때 고쳐야할 부분이 많이 보인다. 1. Code if __name__ == '__main__': t = int(input()) case = [map(int, input().split()) for _ in range(t)] for x1, y1, r1, x2, y2, r2 in case: d = ((x2-x1)**2 + (y2-y1)**2)**0.5 if r1 > r2: longer ..
-
[Python] 백준 1000 A+B알고리즘/BOJ 2020. 3. 2. 12:41
https://www.acmicpc.net/problem/1000 1000번: A+B 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제 입력 1 복사 1 2 예제 출력 1 복사 3 힌트 여기를 누르면 1000번 예제 소스를 볼 수 있습니다.... www.acmicpc.net 알고리즘에 대해 아무 것도 모를 때 풀었던 코드여서 그런가 내 코드 정말 별로다... 1. Code a, b = input().split() print(int(a)+int(b)) 지금의 나라면 print(sum(map(int, input().split()))) 이렇게 풀었을 것 같다..
-
Mac + Docker 에서 GUI 사용하기 (python matplotlib 사용하기)개발 환경/Docker 2020. 2. 23. 02:01
모든 개발 환경을 Docker로 넘어가고 있는 시점에서 계속 난관에 봉착한다. 이번 난관은 바로 Mac + Docker + matplotlib다. 우선 Docker는 리눅스 서버이기 때문에 GUI가 없다. 말이 조금 이상한데 리눅스에서 GUI는 리눅스 커널에 포함된 시스템이 아니라 프로그램이다.(신기) 우분투나 민트 등 리눅스 베포판들은 다 리누스 토발즈가 개발한 리눅스 커널위에 GUI 프로그램을 얹은 것이다. nvidia-smi를 자주 사용하는 사람은 Xorg라는 프로그램이 계속 돌아가는 것을 봤을텐데 그것이 바로 리눅스의 GUI 프로그램이다. 자세한 것은 구글링... 결론은 여튼 Docker에는 GUI 프로그램이 없고 그래서 matplotlib와 같은 GUI python 앱은 아무런 세팅 없이는 사용..
-
Pycharm + Docker 이용하기개발 환경/Pycharm 2020. 2. 21. 20:05
차근차근 모든 개발 프로젝트를 Docker 기반으로 넘어가고 있다. 그중 첫번째로 Python 프로젝트들을 넘겨볼까 한다. 0. 개발 환경 MacOS Pycharm Professional Docker Docker가 설치되어 있지 않고 Docker에 대한 이해가 부족하다면 https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html 초보를 위한 도커 안내서 - 설치하고 컨테이너 실행하기 초보를 위한 도커 안내서 2번째 글입니다. 도커의 기본적인 내용을 이야기 했던 첫번째 글에 이어 실제로 도커를 설치하고 컨테이너를 실행하면서 도커 명령어를 알아봅니다. 도커를 처음 접하는 분들을 위해 아주 가볍게 자주 쓰는 명령어를 다루었습니다. subicura.co..
-
Python multiprocessing 속도 비교Python 2020. 1. 21. 16:39
연구가 끝난 코드들이 많은데 정리가 안되어있어서 요새 정리를 하고 있다. 그러던 와중 전에 작동하였던 python multiprocessing 코드가 작동하지 않아 버그를 수정하였고 속도도 비교하였다. code 1. 에러 IOError: [Errno 24] Too many open files: 'xxxxxxxx.raw'위와 같이 너무 많은 파일을 열었다고 에러가 난다. 구글링을 해보니 리눅스에서 열 수 있는 파일을 제한하고 있어서 그 수를 늘려주면 된다고 나온다. ulimit -aoutput(mac): core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited max lo..
-
PyTorch nn.Sequential 알아보기Python/PyTorch 2020. 1. 21. 16:28
PyTorch 코드를 구경하다보면 종종 nn.Sequential 함수가 보인다. 그래서 알아보았다. 1. 그냥 구현 class CNN(nn.Module): def __init__(): super(CNN, self).__init__(): self.conv1 = nn.Conv2d(1, 32, kernel_size=(41, 11), stride=(2, 2), padding=(20, 5)) self.conv2 = nn.Conv2d(32, 32, kernel_size=(21, 11), stride=(2, 1), padding=(10, 5)) self.bn = nn.BatchNorm2d(32) self.act = nn.Hardtanh(0, 20, inplace=True), def forward(self, x): x..