728x90

분류 전체보기 368

[알고리즘2] Max Flow and Min Cut

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents Max Flow Ford-Fulkerson 알고리즘 Min cut Maxflow-mincut - baseball elimination ▶Max Flow Edge-weighted Digraph 간선의 weight : (거리 아닌) flow 흐를 수 있는 최대량 capacity를 나타낸다. (>= 0) flow의 출발지 s, 도착지 t Max Flow는 출발지에서 도착지로 흐를 수 있는 flow의 최대량 꼭 지켜야 하는 물리적 법칙 1. flow는 간선 방향 따라서 흐른다. 2. 0 > V라면 -> EU P의 mi..

[알고리즘2] Seam Carving 구현 - 실습

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. 2022.12.09 - [컴퓨터공학/알고리즘2] - [알고리즘2] Shortest Paths on Weighted Digraphs [알고리즘2] Shortest Paths on Weighted Digraphs 복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Content dhalsdl12.tistory.com ▶Seam Carving 이미지의 크기 조절 시 중요한 부분 자동 인식해 최대한 보존하며 ..

[알고리즘2] Shortest Paths on Weighted Digraphs

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents 최단경로 Bellman-Ford algorithm Dijkstra algorithm Acyclic Shortest Path Seam Carving ▶Shortest Path(Edge-Weighted Digraph) 간선에 weight가 있는 directed graph G s에서 t까지 연결하는 경로 중 (연결된 간선의 집합) 간선의 weight 합이 최소인 경로 weight 합이 0보다 작은 사이클이 있는 그래프는 최단 경로로 존재하지 않는다. 사이클이 있어도 최단 경로는 존재한다. weight가 0보다 작은 ..

[알고리즘2] Prim's Algorithm의 Eager Version 구현 - 실습

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. 2022.12.08 - [컴퓨터공학/알고리즘2] - [알고리즘2] Minimum Spanning Tree(MST) [알고리즘2] Minimum Spanning Tree(MST) 복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Content dhalsdl12.tistory.com ▶구현 API 정리 # 이미 구현된 기능 class Edge: # Weight 있는 방향성 없는 간선 나타내는 클래스 (예..

[알고리즘2] Minimum Spanning Tree(MST)

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents MST Greedy algorithm Kruskal's algorithm Prim's algorithm lazy version Prim's algorithm eager version ▶MST Minimum Spanning Tree : Wegiht 합이 최소인 spanning tree 1. Tree (connected and acyclic subgraph of G) 2. Spanning tree (모든 정점 포함) 3. 간선의 weight 합이 최소 Brute-force 알고리즘 : 모든 가능한 spannign ..

[데이터베이스] 총 정리

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. 중간을 쳤을 때, 이대로 가다간 B+을 받을 거 같아서, 새롭게 마무리 정리의 필요성을 느꼈다. 키포인트나, 중요한 부분을 정리해서 올려야겠다. ▶10장. SQL(Structured Query Language) 1. SQL 데이터 정의어 테이블 생성/제거, 애트리뷰트 추가/제거, 뷰 생성/제거, 인덱스 생성/제거 2. SQL 데이터 조작어 검색(select) select [all|distinct] 열_리스트 from 테이블_리스트 [where 조건] [group by 열_리스트 [having 조건]] [order by 열_리스트..

[백준/BOJ] gold3 - 14786번 Ax+Bsin(x)=C ② (Python)

▶14786 - Ax+Bsin(x)=C ② ▶문제 A, B, C가 주어졌을 때, Ax+Bsin(x)=C를 만족하는 x를 찾는 프로그램을 작성하시오. ▶입력 첫째 줄에 정수 A, B, C가 주어진다. (0 < B ≤ A ≤ 100,000, 0 < C ≤ 100,000) ▶출력 첫째 줄에 x를 출력한다. 정답과의 절대/상대 오차는 10-9까지 허용한다. ▶풀이 start와 end를 각각 0과 2c로 두고 풀었다. end를 2c로 둔 이유는 그냥이다... 죄송합니다. 아무튼 기준으로 잡은 start와 end를 가지고 이분 탐색을 돌렸다. 기준이 되는 오차가 있기에, start와 end의 차이가 오차보다 작아지면 반복문을 종료하였다. 또한 f(mid) 값이 바로 0이 될 수도 있기에 그때도 종료시켜 주었다. i..

BOJ Code/Gold 2022.12.05

[백준/BOJ] platinum5 - 11003번 최솟값 찾기 (Python)

▶11003 - 최솟값 찾기 ▶문제 N개의 수 A1, A2,..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. ▶입력 첫째 줄에 N과 L이 주어진다. (1 ≤ L ≤ N ≤ 5,000,000) 둘째 줄에는 N개의 수 Ai가 주어진다. (-109 ≤ Ai ≤ 109) ▶출력 첫째 줄에 Di를 공백으로 구분하여 순서대로 출력한다. ▶풀이 deque를 이용해서 값을 구했다. 기존에 deque에 존재하는 값이 새로 들어오는 값보다 큰 경우에는 그냥 빼주었다. 그다음에 index와 그 arr값을 넣어주었다. 만약에 새로운 값이 들어왔는데 가장 앞에 있는 값과의 차이가 L..

BOJ Code/Platinum 2022.12.04

[데이터 통신] Performance - Network Layer : Data Transfer

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents Services Packet Switching Performance Internet Protocol Version 4 Next Generation (IPV6) Transition from IPV4 To IPV6 ▶Performance 네트워크 계층의 서비스를 사용하는 상위 계층 프로토콜은 이상적인 서비스를 받기를 기대한다. 하지만 네트워크 계층은 완벽하지 않다. 네트워크의 성능은 delay, throughput, packet loss로 측정할 수 있다. 혼잡 제어는 성능을 향상시킬 수 있는 문제이다. ▶Dela..

[데이터 통신] Network Layer : Data Transfer

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents Services Packet Switching Performance Internet Protocol Version 4 Next Generation (IPV6) Transition from IPV4 To IPV6 ▶Services Packetizing 네트워크 계층의 첫 번째 의무는 패킷화이다. source에서 네트워크 계층 패킷의 페이로드 캡슐화 및 destination에서 네트워크 계층 패킷의 페이로드 캡슐화 해제이다. 즉, 네트워크 계층의 한 가지 의무는 페이로드를 변경하거나 사용하지 않고 ★source에서..

[데이터베이스] 병행 제어

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶트랜잭션 ex. A 계좌에서 100원을 B계좌로 이체하는 트랜잭션 T:Read(A) A = A - 100 Write(A) Read(B) B = B + 100 Write(B) 실행 도중 장애 발생 A 계좌 100원 인출, B계좌 입금 실패 시 모순 상태(inconsistent state) 발생 둘 다 수행되거나, 하나라도 수행되지 않아야 한다. DBMS는 어느 부분이 트랜잭션인지 알 수 없다. 사용자가 트랜잭션을 명시적으로 표시해야 한다. 트랜잭션이란? 일련의 연산들의 집합니다. 하나의 논리적 기능을 수행하기 위한 작업의 단위로..

[데이터 통신] Bluetooth - Local Area Networks(LANs)

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents Ethernet Wifi, IEEE 802.11 Project Bluetooth ▶Bluetooth 블루투스 LAN은 애드혹 네트워크(기기끼리 바로 연결 가능한 network)이다. (네트워크가 자발적으로 형성된다.)\ 때때로 가젯이라고 불리는 장치는 서로를 찾고 피코넷이라고 불리는 네트워크를 만든다. 블루투스 랜은 가젯 중 하나에 이러한 기능이 있으면 인터넷에 연결할 수도 있다.\ 용도 : 무선 마우스/키보드, 헬스케어 센서, 가정용 보안장치 등 IEEE 802.15 WPAN (WLAN보다 조금 더 근거리에서..

[백준/BOJ] platinum5 - 1517번 버블 소트 (Python)

▶1517 - 버블 소트 ▶문제 N개의 수로 이루어진 수열 A[1], A[2], …, A[N]이 있다. 이 수열에 대해서 버블 소트를 수행할 때, Swap이 총 몇 번 발생하는지 알아내는 프로그램을 작성하시오. 버블 소트는 서로 인접해 있는 두 수를 바꿔가며 정렬하는 방법이다. 예를 들어 수열이 3 2 1이었다고 하자. 이 경우에는 인접해 있는 3, 2가 바뀌어야 하므로 2 3 1 이 된다. 다음으로는 3, 1이 바뀌어야 하므로 2 1 3 이 된다. 다음에는 2, 1이 바뀌어야 하므로 1 2 3 이 된다. 그러면 더 이상 바꿔야 할 경우가 없으므로 정렬이 완료된다. ▶입력 첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 줄에는 N개의 정수로 A[1], A[2], …, A[N]이 주어진다. ..

BOJ Code/Platinum 2022.11.28

[백준/BOJ] gold5 - 11000번 강의실 배정 (Python)

▶11000 - 강의실 배정 ▶문제 수강신청의 마스터 김종혜 선생님에게 새로운 과제가 주어졌다. 김종혜 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, Ti ≤ Sj 일 경우 i 수업과 j 수업은 같이 들을 수 있다.) 수강신청 대충 한 게 찔리면, 선생님을 도와드리자! ▶입력 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) ▶출력 강의실의 개수를 출력하라. ▶풀이 heapq를 만들어서 문제를 풀었다. 그때그때 강의실 중 가장 빨리 끝나는 강의실을 찾아 그 강의실이 끝..

BOJ Code/Gold 2022.11.28

[백준/BOJ] gold5 - 1038번 감소하는 수 (Python)

▶1038 - 감소하는 수 ▶문제 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 출력하는 프로그램을 작성하시오. 0은 0번째 감소하는 수이고, 1은 1번째 감소하는 수이다. 만약 N번째 감소하는 수가 없다면 -1을 출력한다. ▶입력 첫째 줄에 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. ▶출력 첫째 줄에 N번째 감소하는 수를 출력한다. ▶풀이 숫자 0~9까지를 combination을 이용해 모든 조합을 찾는다. 그다음 역순으로 정렬해 합쳐서 number에 넣어주고, number를 정렬하면 된다. from itert..

BOJ Code/Gold 2022.11.28

[데이터 통신] Wifi, IEEE 802.11 Project - Local Area Networks(LANs)

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents Ethernet Wifi, IEEE 802.11 Project Bluetooth ▶Wife, IEEE 802.11 Project 그것은 때때로 wireless Ethernet (w-LAN)이라고 불린다. 미국을 포함한 일부 국가에서 대중은 무선 LAN의 동의어로 WiFi(wireless fidelity 줄임말)라는 용어를 사용한다. WiFi는 WiFi Alliance 인증을 받은 무선 LAN이다. ▶Architecture 이 표준은 기본 서비스 세트(BSS)와 확장 서비스 세트(ESS)를 정의한다. Basic ..

[데이터 통신] Ethernet - Local Area Networks(LANs)

복습하기 위해 학부 수업 내용을 필기한 내용입니다. 이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다. ▶Contents Ethernet Wifi, IEEE 802.11 Project Bluetooth ▶Ethernet Standard Ethernet(10 Mbps) 데이터 속도가 10 Mbps인 오리지널 이더넷 기술을 표준 이더넷이라고 한다. 대부분의 구현이 이더넷 진화에서 다른 기술로 이동했지만, 표준 이더넷의 일부 기능은 진화하는 동안 바뀌지 않았다. (속도가 증가해도 획기적인 변화가 없었다.) Connectionless 및 신뢰성 서비스 (잘 받으면 ACK, ACK가 안 오면 다시 전송)  이더넷은 connectionle..

[백준/BOJ] bronze5 - 4999번 아! (Python)

▶4999 - 아! ▶문제 재환이는 저스틴 비버 콘서트에서 소리를 너무 많이 질러서 인후염에 걸렸다. 의사는 재환이에게 "aaah"를 말해보라고 시켰다. 안타깝게도 재환이는 의사가 원하는 만큼 소리를 길게 낼 수 없는 경우가 있었다. 각각의 의사는 재환이에게 특정한 길이의 "aah"를 말해보라고 요청한다. 어떤 의사는 "aaaaaah"를 요구하기도 하고, "h"만 요구하는 의사도 있다. 모든 의사는 자신이 원하는 길이의 "aah"를 듣지 못하면 진단을 내릴 수 없다. 따라서, 재환이는 집에서 자신이 얼마나 길게 "aah"를 낼 수 있는지 알아냈고, 자기가 소리 낼 수 있는 길이의 "aah"를 요구하는 의사를 방문하려고 한다. 재환이가 낼 수 있는 "aah"의 길이와 의사가 요구하는 길이가 주어진다. 이때..

[백준/BOJ] bronze5 - 4101번 크냐? (Python)

▶4101 - 크냐? ▶문제 두 양의 정수가 주어졌을 때, 첫 번째 수가 두 번째 수보다 큰지 구하는 프로그램을 작성하시오. ▶입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 두 정수가 주어진다. 두 수는 백만보다 작거나 같은 양의 정수이다. 입력의 마지막 줄에는 0이 두 개 주어진다. ▶출력 각 테스트 케이스마다, 첫 번째 수가 두 번째 수보다 크면 Yes를, 아니면 No를 한 줄에 하나씩 출력한다. ▶풀이 a, b가 0, 0인 경우를 제외하고 두 수를 비교해서 a가 크다면 yes, 아니면 no를 출력해주면 되는 문제이다. result = [] while True: a, b = map(int, input().split()) if a == 0 and ..

728x90