Computer Science 281

[네트워크] Packet Switching VS Circuit Switching

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.06 - [Computer Science/네트워크] - [네트워크] Circuit Switching, Multiplexing [네트워크] Circuit Switching, Multiplexing 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.16 - [Computer Science/네트워크] - [네트워크] Forwarding Table and Routing Protocols [네트워크] Forwarding Table and Routing Protocols 앞의 글을 읽으시면 이해에 도움 hi-guten-tag.tistory.com 1. 서론 Packet Switching 방식의 비판자들은 Packet Switching 방식이 실시간 ..

[네트워크] Circuit Switching, Multiplexing

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.16 - [Computer Science/네트워크] - [네트워크] Forwarding Table and Routing Protocols [네트워크] Forwarding Table and Routing Protocols 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.03.16 - [Computer Science/네트워크] - [네트워크] Queuing Delays and Packet Loss [네트워크] Queuing Delays and Packet Loss 앞의 글을 읽으시면 이해에 도움이 됩니다. 2 hi-guten-tag.tistory.com 1. Circuit Switching 대표적인 데이터를 옮기는 네트워크의 대표적인 두 개의 구조..

[백준 - Python] 12757 - 전설의 JBNU

0. 문제 링크 https://www.acmicpc.net/problem/12757 12757번: 전설의 JBNU 첫 줄에는 초기 데이터의 개수인 \(N(1 \le N \le 100,000)\) 과 명령 횟수인 \(M(1 \le M \le 100,000)\), 가장 근접한 Key까지의 거리의 제한인 \(K(1 \le K \le 10,000)\)가 주어진다. 입력의 둘째 줄부터 N개의 줄에 www.acmicpc.net 1. 풀이 방법 눈 씻고 봐도 쌩구현 문제 (+정정, 구현 아니고 탐색 관련 문제였음) 가장 중요한건 인접한 키를 찾는 로직이 가장 중요하다. 이때 Linear로 인접한 키를 구하는 순간 시간 초과가 난다. 따라서 다른 방법으로 탐색해야 한다. 나는 이진 탐색을 골랐다. 아마 더 좋은 방법이..

[백준 - Python] 12764 - 싸지방에 간 준하

0. 문제 링크 https://www.acmicpc.net/problem/12764 12764번: 싸지방에 간 준하 첫째 줄에 사람의 수를 나타내는 \(N\)이 주어진다. \((1 \le N \le 100,000)\) 둘째 줄부터 \(N\)개의 줄에 걸쳐서 각 사람의 컴퓨터 이용 시작 시각 \(P\)와 종료 시각 \(Q\)가 주어진다. \((0 \le P \lt Q \le 1,000 www.acmicpc.net 1. 풀이 방법 우선순위 큐를 3개나 사용해서 풀었음 첫 번째는 시작 시간 순서대로 정렬한 리스트 - A 두 번째는 끝나는 시간을 기준으로 정렬한 리스트 - B 세 번째는 자리의 번호를 정렬한 리스트임 - C A에서 시간을 뽑음 그리고 B에 넣고, C에서 가장 작은 자리의 번호를 추출함 그 다음에..

[백준 - Python] 20440 - 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1

0. 문제 링크 https://www.acmicpc.net/problem/20440 20440번: 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 첫째 줄에 지동이의 방에 출입한 모기의 마릿수 N(1 ≤ N ≤ 1,000,000)가 주어진다. 다음 N개의 줄에 모기의 입장 시각 TE과 퇴장 시각 TX이 주어진다. (0 ≤ TE max_value: # 만약 현재의 값이 최댓값보다 크다면 갱신 max_value = cur_value start = i flag = True # 중복으로 end를 갱신하는 것을 방지하기 위함 if flag and bef_value == max_value and cur_value < max_value: # 위에서 갱신했을 때만 end를 갱신함 # 이때 현재 값은..

[백준 - Python] 17404 - RGB 거리 2

0. 문제 링크 https://www.acmicpc.net/problem/17404 17404번: RGB거리 2 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 1. 풀이 방법 일단 문제를 보자마자 이건 DP라는 생각이 들었다. 가장 문제는 마지막 집과 첫 번째 집의 색이 달라야 한다는 것이다. 사실 마지막 집과 첫 번째 집의 색을 고려하지 않고 짰는데, 알고 보니 고려해야 해서 조금 수정을 했다. 그러면 고려를 한다면 어떻게 해야할까? 많은 고민을 했다. 누가 봐도 DP인데, 어떻게 첫 번째 집의 정보를 저장..

[백준 - Python] 14267 - 회사 문화 1

0. 문제 링크 https://www.acmicpc.net/problem/14267 14267번: 회사 문화 1 영선회사에는 매우 좋은 문화가 있는데, 바로 상사가 직속 부하를 칭찬하면 그 부하가 부하의 직속 부하를 연쇄적으로 칭찬하는 내리 칭찬이 있다. 즉, 상사가 한 직속 부하를 칭찬하면 그 부하 www.acmicpc.net 1. 풀이 방법 1번 시도(트리라 생각함) 1. defaultDict을 이용해서 자신의 직속 후임을 리스트로 만들어놓음 2. 그리고 우선 자신에게 칭찬을 더하고, 후임들을 또 재귀함 3. 재귀 제한에 걸려서, 다시 수정하고 제출하니 이번엔 시간 초과 2번 시도(트리에 BFS를 적용함) 1. 재귀 때문에 시간 초과라 생각함 2. 그래서 재귀를 bfs로 변경해서 구현함 3. 시간 초..

[백준 - Python] 1507 - 궁금한 민호

0. 문제 링크 https://www.acmicpc.net/problem/1507 1507번: 궁금한 민호 강호는 N개의 도시로 이루어진 나라에 살고 있다. 각 도시는 M개의 도로로 연결되어 있으며, 각 도로를 지날 때 필요한 시간이 존재한다. 도로는 잘 연결되어 있기 때문에, 도시 A에서 B로 이동할 www.acmicpc.net 1. 풀이 방법 2. 코드 import sys from itertools import permutations input = sys.stdin.readline def sol(): flag = [[True] * n for _ in range(n)] for i, j, k in permutations([*range(n)], 3): if maps[i][k] == maps[i][j] + ..

[백준 - Python] 7453 - 합이 0인 네 정수

0. 문제 링크 https://www.acmicpc.net/problem/7453 7453번: 합이 0인 네 정수 첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다. www.acmicpc.net 1. 풀이 방법 일단 내가 푼 방식을 먼저 얘기하고 Two Pointer로 풀 수 있는 방법에 대해 얘기해 보자. 나는 일단 정렬 이런 거 안 했다. a, b, c, d가 있으니 a와 b를 합쳐서 ab, c와 d를 합쳐서 cd로 만들었다. 이때 cd를 Counter 객체로 만들었다. Counter 객체는 파이썬 내장 모듈이므로 한 번 찾아보면 될 것 같다. 아무튼..