분류 전체보기 461

[네트워크] The Network Core

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.09 - [Computer Science/네트워크] - [네트워크] The Network Edge [네트워크] The Network Edge 이전 글을 읽으시면 이해에 도움이 됩니다. 2023.03.09 - [Computer Science/네트워크] - [네트워크] What is the Internet? [네트워크] What is the Internet? 0. 글을 쓰기에 앞서 해당 글은 경북대학교 컴퓨터학부 수 hi-guten-tag.tistory.com 1. The Network Core Network Edge와 다른 개념인 Network Core에 대해서 알아봅시다. Network Core는 End System과 상호 연결된 수많은 Packe..

[Pytorch] torch.utils.data.DataLoader

앞선 글을 읽으시면 이해에 도움이 됩니다. 2023.02.25 - [인공지능/Pytorch] - [Pytorch] torch.utils.data.Dataset [Pytorch] torch.utils.data.Dataset 1. torch.utils.data.Dataset torch.utils.data의 하위에 있는 Dataset은 Pytorch에서 데이터를 불러오고, 전처리하는 클래스입니다. 따라서 사용자가 자신의 데이터셋을 만들어 Pytorch에서 사용할 수 있도록 해줍 hi-guten-tag.tistory.com 1. torch.utils.data.DataLoader torch.utils.data.dataloader는 PyTorch에서 제공하는 데이터 로더(data loader)입니다. 데이터 로더는..

[백준 - Python] 2141 - 우체국

0. 문제 링크 https://www.acmicpc.net/problem/2141 2141번: 우체국 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 X[1], A[1], X[2], A[2], …, X[N], A[N]이 주어진다. 범위는 |X[i]| ≤ 1,000,000,000, 1 ≤ A[i] ≤ 1,000,000,000 이며 모든 입력은 정수이다. www.acmicpc.net 1. 풀이 방법 해당 방법은 그리디여서 어떻게 풀지 생각이 좀 많았다. 인구가 가장 많은 곳을 기준 잡고, 그 다음 많은 곳을 향해 우체국 위치를 조정할까 이런 생각을 하다가 이건 최적을 보장하지 못한다는 생각이 들어서 그만뒀다. 음..이런 문제를 풀 때, 이게 최적이라는 보장이 있을까요? 그리디는 ..

[백준 - Python] 2374 - 같은 수로 만들기

0. 문제 링크 https://www.acmicpc.net/problem/2374 2374번: 같은 수로 만들기 n(1 ≤ n ≤ 1,000)개의 자연수 A[1], A[2], A[3], …, A[n]이 있다. 이 자연수에 Add(i)라는 연산을 하면, A[i]가 1만큼 증가한다. 이때, A[i]만 증가하는 것이 아니고, A[i]의 좌우로 인접한 같은 수의 그룹이 한 www.acmicpc.net 1. 풀이 방법 일단 같은 숫자면 같은 그룹이므로, 중복으로 넣어야 되나 싶었다. 그래서 일단 넣을때부터 같은 그룹이면 하나의 숫자만 넣었다. 예를 들어서, 1 1 1 3 1이 입력되면, 1 3 1만 stack에 들어갔다. 그 이후에는 어떻게 숫자를 더할 것인가가 문제인데, 나는 다른 방법을 썼다. 인덱스를 기준으..

[백준 - Python] 1967 - 트리의 지름

0. 문제 링크 https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 1. 풀이 방법 문제를 보고 이건 탐색 기법을 써야겠다고 생각을 했다. 문제 무작정 DFS, BFS를 쓰는 건 좀 아닌 것 같았다. 왜냐면 모든 노드에서 다른 노드를 탐색하는 방법을 사용하면 n^2이 될 것 같았기 때문이다. 어떻게 최장거리를 탐색할 것인가에 대해 고민을 했다. 방금 글 쓰면서 떠오른건데 TSP를 조금 손 봐서 최장거리를 찾아낼 수 있을 것 같다..

[네트워크] The Network Edge

이전 글을 읽으시면 이해에 도움이 됩니다. 2023.03.09 - [Computer Science/네트워크] - [네트워크] What is the Internet? [네트워크] What is the Internet? 0. 글을 쓰기에 앞서 해당 글은 경북대학교 컴퓨터학부 수업인 COMP0414-001 컴퓨터 망의 수업을 들으면서 작성하는 내용입니다. 책은 [Computer Networking : A Top - Down Approach 8th Edition, Kindle Edition by James F hi-guten-tag.tistory.com 1. Network Edge란? 앞선 글에서 설명한 것처럼 End System에 있는 디바이스는 인터넷을 통해 소통합니다. 이때 End System을 Netwo..

[네트워크] What is the Internet?

0. 글을 쓰기에 앞서 해당 글은 경북대학교 컴퓨터학부 수업인 COMP0414-001 컴퓨터 망의 수업을 들으면서 작성하는 내용입니다. 책은 [Computer Networking : A Top - Down Approach 8th Edition, Kindle Edition by James F. Kurose (Author), Keith Ross (Author)] 을 보고 있습니다. 해당 카테고리에서는 컴퓨터 네트워크의 내용을 다루고 있습니다. 1. Internet이란? 우리는 누구나 인터넷을 사용하지만, 인터넷을 정의하는 것은 어렵습니다. 해당 글에서는 인터넷을 정의하는 두 가지 관점에 대해서 정리합니다. 첫 번째는 인터넷을 구성하는 볼트와 너트, 인터넷을 구성하는 하드웨어와 소프트웨어의 관점에서 봅니다. ..

[백준 - Python] 2668 - 숫자 고르기

0. 문제 링크 https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 1. 풀이 방법 해당 문제는 단순히 사이클이 존재하는 노드를 집합으로 넣으면 되는 문제이다. 나는 전혀 최적화를 하지 않고, 모든 노드를 살펴보면서 탐색하게 하였다. 물론 이 방법이 좋은 것은 아니지만, 그래도 꽤 시간은 빨랐다. 아무튼 DFS를 하다가 특정 노드가 이미 True로 설정되어 있다면, 이는 사이클이 생긴 것이므로 이를 ans set에 넣고 반환하게 하였다..

[백준 - Python] 7569 - 토마토

0. 문제 링크 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 1. 풀이 방법 음... 해당 문제는 매우 쉬웠다. 그냥 BFS를 하면 풀리는 문제다. 이때 익혀야 하는 토마토의 개수를 미리 세서, 그 개수만큼 되면 끝내게 했다. 만약 해당 갯수만큼 모두 채우지 못했는데, BFS가 끝나버리면 이는 모두 채우지 못하는 것이므로 -1을 반환하였다. 2. 코드 from collections import deque import ..

[백준 - Python] 2573 - 빙산

0. 문제 링크 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 1. 풀이 방법 우선 빙산의 녹음을 구현한 함수인 melt()와 그룹화하는 함수인 group() 함수를 구현했다. 그리고 빙산 근처에 바다의 개수를 세는 adj도 따로 만들어서, 빙산 근처에 몇 개의 바다가 있는지 셌다. melt() 함수를 사용하고, 다시 인접한 바다의 개수를 셌다. 만약 특정 빙산이 모두 녹았다면 해당 빙산은 adj 딕셔너리에서 pop 하였다. group(..