Computer Science 281

[백준 - Python] 3584 - 가장 가까운 공통 조상

0. 문제 링크 https://www.acmicpc.net/problem/3584 3584번: 가장 가까운 공통 조상 루트가 있는 트리(rooted tree)가 주어지고, 그 트리 상의 두 정점이 주어질 때 그들의 가장 가까운 공통 조상(Nearest Common Anscestor)은 다음과 같이 정의됩니다. 두 노드의 가장 가까운 공통 조상은, 두 www.acmicpc.net 1. 풀이 방법 일단 딕셔너리를 사용해서 B의 부모에 A를 넣었다. 이를 이용해서 각자 자신의 부모를 저장할 수 있게 만들어놓았다. 마지막에 내가 찾고자 하는 a와 b가 있다고 가정하자. a의 부모를 루트 노드 전까지 계속해서 참조하면서 부모들을 집합에 넣었다. 마지막으로 b를 계속해서 루트 노드로 올라가면서 부모들을 집합에 있는..

[네트워크] Forwarding Table and Routing Protocols

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.16 - [Computer Science/네트워크] - [네트워크] Queuing Delays and Packet Loss [네트워크] Queuing Delays and Packet Loss 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.14 - [Computer Science/네트워크] - [네트워크] The Network Core [네트워크] The Network Core 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.09 - [Computer Scienc hi-guten-tag.tistory.com 1. Forwarding Table 앞서 라우터는 연결된 통신 링크 중 하나에서 도착하는 패킷을 가져와 다른 연결된 통신 링..

[네트워크] Queuing Delays and Packet Loss

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.14 - [Computer Science/네트워크] - [네트워크] The Network Core [네트워크] The Network Core 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.09 - [Computer Science/네트워크] - [네트워크] The Network Edge [네트워크] The Network Edge 이전 글을 읽으시면 이해에 도움이 됩니다. 2023.03.09 - [Computer Scienc hi-guten-tag.tistory.com 1. Queuing Delay 각 패킷 스위치에는 여러 개의 링크가 연결되어 있습니다. 패킷 스위치는 연결된 링크마다 output buffer를 가지고 있어, 해당 링크로 전..

[네트워크] 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..

[백준 - 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에 넣고 반환하게 하였다..