본문 바로가기

전체 글

(75)
[백준]_14220번 : 양아치 집배원(파이썬) 14220번: 양아치 집배원 첫 줄에는 방문하는 도시 n개가 주어지고(1≤n≤500), 그 다음 n줄에는 n개의 원소가 주어지는 데, i번째 줄의 j번째 원소는 i에서 j로 가는데 거리이다. 만약 거리가 0이면 i에서 j로는 이동할 수 없 www.acmicpc.net 애초에 문제 자체가 이해하기 되게 어려웠던 문제이다. 예제 입력들을 이용해서 현 상황을 이해해 보자. 예제 입력 1 1행 2열에 있는 1이 의미하는 것은 1번 도시에서 2번 도시로 이동하는데 걸리는 비용이다. 그래서 만일 1행 2열의 1을 선택하면 이 시점까지의 이동 비용은 1이고 총 방문한 도시의 수는 2(1번 도시에서 출발, 2번 도시에 결국 도착. 총 2개의 도시를 방문)이다. 대각 성분들이 전부 0인 이유는 예를 들어 n번 도시에서 ..
[4.4.7] Dive into Deep Learning : exercise answers 4.4. Softmax Regression Implementation from Scratch — Dive into Deep Learning 1.0.3 documentation d2l.ai [1-1] We can observe this code when we tamper with X X_prob = softmax(X) X_prob, X_prob.sum(1) Instead of consisting X with small values such as torch.normal as the book did, let X be X=torch.arange(90, 100).reshape(2, 5) now, X consists of large values from 90 to 99, let's watch what happens..
[4.3.4] Dive into Deep Learning : exercise answers 4.3. The Base Classification Model — Dive into Deep Learning 1.0.3 documentation d2l.ai [1] $L_{v}$ denotes the 'averaged total validation loss' and $L_{v}^{d}$ denotes 'averaged validation loss of a minibatch'. By the question, we have to find the relationship between $L_{v}$ and $L_{v}^{d}$. Let sample size $=N$(total examples in the dataset) minibatch size $=M$(number of examples in the minib..
[백준]_11000번 : 강의실 배정(파이썬) 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 우리의 목표는 강의 시작 시간과 끝 시간을 고려하여 최소 사용 강의실 수를 구하자 이다. 예를 들어 강의 시간을 다음과 같이 나타낸다면, (1, 2, 4) (3) 으로 총 2개의 강의실이 필요함을 알 수 있다. 물론 이 결과는 직관적으로 강의의 끝과 시작이 겹치는 1, 2, 4번 강의를 묶는 것이 강의와 강의 사이의 시간 낭비(공강)를 줄일 수 있기 때문에 나온 것이다. 즉 tuple(시작 시간(s), 끝 시간(f))이 원소인 리스트를 정렬하여 시작 시간과 끝 시간을 더 쉽게 관찰할 수 있게 해주는 것이 우선 ..
[4.2.5] Dive into Deep Learning : exercise answers 4.2. The Image Classification Dataset — Dive into Deep Learning 1.0.3 documentation d2l.ai [1] Usually batch_size's are formed as $2^n$ from, we can inspect the run time of loading the dataset when batch_size=$2^n$. ls=[(2*i)**2 for i in range(1, 9)] t_info = [] for size in ls: data = FashionMNIST(resize=(32, 32), batch_size=size) tic = time.time() for X, y in data.train_dataloader(): continue t..
[4.1.5] Dive into Deep Learning : exercise answers 4.1. Softmax Regression — Dive into Deep Learning 1.0.3 documentation d2l.ai [1-1] Since the first derivative of the cross-entropy loss is given, we only have to differentiate $softmax(o)_{j}-y_{i}$ with the respect to $o_{j}$. $$\partial _{o_{j}}(softmax(\textbf{o})_{j}-y_{i})=softmax(\textbf{o})_{j}(1-softmax(\textbf{o})_{j})$$ [1-2] Makes sense if the distribution is a Bernoulli. We can view ..
[백준]_17387번 : 선분 교차 2(파이썬) 17387번: 선분 교차 2 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. www.acmicpc.net 이 문제를 풀기 전에 사전 지식이 많이 필요하다. 1. CCW(Counter Clock Wise) 알고리즘 2차원 평면에 놓여 있는 점 3개에 대해 상대적인 위치 관계를 외적을 통해서 구할 수 있다. 이 알고리즘을 적용했을 때 양수가 나오면 반시계, 음수면 시계, 0이면 한 직선 위에 점들이 놓여 있는 것이다. 결괏값은 점의 연산 순서(A->B->C)에 매우 민감하기 때문에 점들의 순서가 매우 중요하다. 알고리즘 계산법은 여기서 더 알아보자. 2. CCW를 활용한 선분의 교차 조건 그래서 결국 세 점의 상대적인 방향을 알아..
[백준]_2162번 : 선분 그룹(파이썬) 2162번: 선분 그룹 첫째 줄에 N(1 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N+1번째 줄에는 양 끝점의 좌표가 x1, y1, x2, y2의 순서로 주어진다. 각 좌표의 절댓값은 5,000을 넘지 않으며, 입력되는 좌표 사이에는 빈칸이 하 www.acmicpc.net 두 선분 A, B가 교차한다는 사실을 다른 관점에서 해석해 본다면 노드 A, B가 연결되어 있다고 해석할 수 있다. 그리고 노드들의 연결을 관점에서 그룹의 개수와 가장 큰 그룹의 요소의 개수는 분리 집합으로 다시 풀릴 수 있다. 선분의 교차는 CCW알고리즘으로 해결할 수 있다. 즉 가능한 모든 선분 조합을 비교해보면서 교차하면 분리 집합을 이용해 부모 선분을 찾게 해 주면 된다. 아이디어 자체는 굉장히 간단하지만 마지막 경로 압..