목록분류 전체보기 (316)
Koo's.Co
colab을 사용하다 보면 파이썬의 버전을 변경해주어야 하는 경우가 많이 발생합니다. 구글링을 해도 해결 방법을 찾지 못하다 가라식(?) 해결책을 찾게 되어 포스팅해보려 합니다. 💡 이 방법을 사용하면 노트북 런타임을 다시 시작하면 다시 설정해주어야 하는 번거로움이 있습니다. colab에서 공식적으로 지원하는 파이썬의 버전은 3.8 버전 이상으로 그 이전 버전을 필요로 하는 서드 파티 라이브러리를 사용하는 데 문제가 있습니다. 현재 colab에 설치되어 있는 파이썬 버전을 확인해보면 다음과 같습니다. 3.8 버전과 3.10버전을 지원하고 있기 때문에 이 상태에서는 3.7버전으로 바꾸려해도 바꾸기가 어렵습니다. 여기서 직접 apt를 사용해 python3.7을 설치해주겠습니다.!sudo apt upgrade..
pathlib — Object-oriented filesystem paths Source code: Lib/pathlib.py This module offers classes representing filesystem paths with semantics appropriate for different operating systems. Path classes are divided between pure paths, which p... docs.python.org pathlib은 file system을 PosixPath 객체를 사용해 경로를 객체지향 방식으로 사용할 수 있게 해주는 모듈입니다. pathlib을 사용하면 os 모듈을 사용할 때보다 더 직관적으로 파일과 폴더에 접근할 수 있는 장점이 있습니다. ..
텐서(Tensor) 파이토치(PyTorch) 기본 익히기|| 빠른 시작|| 텐서(Tensor)|| Dataset과 Dataloader|| 변형(Transform)|| 신경망 모델 구성하기|| Autograd|| 최적화(Optimization)|| 모델 저장하고 불러오기 텐서(tensor)는 배열(array)이 tutorials.pytorch.kr * Pytorch 튜토리얼에서 제공하는 내용을 기반으로 작성했습니다. import pytorch import numpy as np pytorch에서 사용하는 기본적인 자료형은 tensor입니다. pytorch에서는 tensor를 이용해 입출력과 매개변수들을 사용합니다. tensor는 numpy의 ndarray와 거의 유사하고, tensor와 ndarray는 동일..
hstack은 두 numpy 배열이 주어질 때 배열들을 가로로 붙여주는 역할을 하는 함수입니다. 최대 3차원까지의 배열에 적용할 수 있으며 첫번째 인자로 받은 배열 뒤에 두번째 인자로 받은 배열을 가로로 붙여 반환합니다. # 1차원 배열에서의 hstack a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) np.hstack((a, b)) # 2차원 배열 c = np.array([[1, 2, 3], [4, 5, 6]]) d = np.array([[7, 8, 9], [10, 11, 12]]) np.hstack((c, d))
2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 풀이 위상정렬을 이용한 기본 문제입니다. 1) 진입 차수를 저장할 리스트 2) graph의 형태를 저장할 리스트 진입차수 진입 차수는 간선의 화살표를 받는 개수를 의미합니다. (도착지가 되는 횟수) 1은 0 2는 1에서부터 오므로 1 3은 1에서부터 오므로 1 4는 2와 3으로부터 오므로 2 5는 2와 4로부터 오므로 2 구하고자 하는 진입차수는 [0, 1, 1, 2, 2] 가 됩니다. 1) queue를 생성하고 진입차..
2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 풀이 위상 정렬과 dp를 이용해 풀 수 있는 문제입니다. ACM Craft 문제와 거의 동일한 문제인 것 같습니다. 먼저 위상 정렬을 이용해 각 값들의 진입 차수를 구해준 후 bfs를 사용했습니다. 작업을 하기 위해서는 선행 작업들을 모두 수행해야 하기 때문에 dp리스트를 만들어 이전 작업들 중 가장 시간이 오래 걸린 값들만 저장해줍니다. -> max를 이용해 노드에 한 번 도착할 때마다 값을 갱신! 모든 작업이 완료된 시간을 구해야하기 때문에 max를..
보호되어 있는 글입니다.
1. 1, 2, 3 더하기 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 풀이 새로 오는 수는 그 전의 숫자들에 각각 1, 2, 3을 더해 만들 수 있다. 4의 경우 이전 3개의 숫자에 1, 2, 3을 더해 만들 수 있다. 그러므로 구하고자 하는 점화식은 위와 같다. import sys read = sys.stdin.readline dp = [0, 1, 2, 4] + [0] * 7 for i in range(4, 11): dp[i] = dp[i-1] + dp[i-2] + dp[i-3] for _ in range(int(read())): print(dp[int(read())]) 2. 1, 2, 3 더하기 2..