성공 코드(내 코드) 문자열로 저장되어 있는 숫자를 v 벡터에 정수로 변환하여 넣는다. 선택해야 하는 숫자의 개수만큼 반복문을 돌린다. 총 n개를 뽑아야 한다고 가정하면, 1번째 숫자를 고를 때 뒤에 최소한 n-1개의 숫자가 남아있어야 한다. 뒤에 숫자가 n-1개가 남기 전까지 v 벡터를 탐색하며 가장 큰 숫자를 찾는다. 찾은 가장 큰 숫자를 answer에 string으로 변환하여 추가한다. 똑같은 방법으로 2번째 숫자를 고른다. 이 과정을 n개의 숫자를 모두 뽑을 때 까지 반복한다. 이때는 뒤에 최소한 n-2개의 숫자가 남아있어야 한다. #include #include #include using namespace std; string solution(string number, int k) { strin..
6. 링크 계층: 링크, 접속망, 랜 6.1 링크 계층 소개 노드(node) 호스트, 라우터, 스위치, WiFi AP 링크(link) 통신 경로상의 인접한 노드들을 연결하는 통신 채널 한 링크에서 전송 노드는 데이터그램을 링크 계층 프레임으로 캡슐화해서 링크로 전송한다. 6.1.1 링크 계층이 제공하는 서비스 링크 계층의 기본 서비스 단일 통신 링크상으로 데이터그램을 한 노드에서 인접 노드로 "이동"시키는 것 ✖️ 그 외의 서비스 프레임화 거의 모든 링크 계층 프로토콜은 네트워크 계층 데이터그램을 링크 상으로 전송하기 전에 링크 계층 프레임에 캡슐화한다. 링크 접속 매체 접속 제어 프로토콜은 링크상으로 프레임을 전송하는 규칙에 대해서 명시한다. 신뢰적 전달 링크 계층 프로토콜이 신뢰적 전달 서비스를 제공..
5. 네트워크 계층: 제어 평면 🤨 네트워크 계층을 두개로 나누면? Control Plane: 네트워크 장비를 제어하는 뇌에 해당 Data Plane: 데이터를 전송하는 역할 5.1 개요 포워딩과 라우팅 개념은 네트워크 계층 학습 시 계속 등장하는 개념이다. 정확하게 짚고 넘어가자! 포워딩 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것 라우팅 출발지에서 목적지까지의 경로를 결정하는 것 라우터별 제어 각 라우터는 다른 라우터의 라우팅 구성요소와 통신하여 자신의 포워딩 테이블의 값을 계산하는 라우팅 구성요소를 가지고 있다. OSPF와 BGP 프로토콜이 이 라우터별 제어 방식을 기반으로 한다. 논리적으로 중앙 집중된 제어 컨트롤러가 포워딩 테이블을 작성하고 이를 모든 개별 라우터가 사용할 수 있도록..
4.3.5 IPv6 등장 배경: IPv4 주소 부족 문제 큰 IP 주소 공간의 필요에 따라, 새로운 IP 프로토콜인 IPv6가 개발되었다. IPv6 데이터그램 포맷 🙂 헤더를 IPv4와 비교해서 보면 좋다! 32비트였던 IPv4를 128비트로 2의 128승은 엄청 큰 수 hop limit은 TTL과 같다. 없으면 곤란하다. 데이터그램을 전달할 때마다 1씩 감소한다. 홉 제한수가 0보다 작아지면 데이터그램을 버린다. checksum이 없어짐. next hdr 옵션이 있으면 포인터로 가리키게 된다. 옵션이 또 있으면 next hdr가 있어 또 포인터로 가리키게 되고 이런식으로 하면 무한대까지 가능하지만 사이즈는 한정되어 있으므로 무한대까지는 안된다. 라우터한테 일을 덜 시킨다. 헤더들을 이해하는 것은 라우터..
알고리즘 그리디 알고리즘 정렬 풀이 나무 중 자라는 길이가 큰 것을 가장 나중에 자르도록 한다. 첫날 나무의 길이에 매일 자라는 길이만큼 더해지므로, 정수 ans 변수에 첫날 나무의 길이를 다 더해둔 후 매일 자라는 길이 * 자르기 전까지 자라난 일 수를 반복문을 통해 더해준다. 매일 자라는 길이는 오름차순 정렬 후 배열의 끝에서부터 사용하였다. 시간 초과 코드 grow 배열을 정렬하지 않고 굳이 max 값을 일일이 구하여 O(n^2) 시간복잡도가 되어 시간초과 발생 #include #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); // freopen("input.txt", "..
4.3 인터넷 프로토콜(IP): IPv4, 주소 지정, IPv6 등 현재 사용 중인 IP는 두 가지 버전 IPv4와 IPv6이 있다. 4.3.1 IPv4 데이터그램 형식 버전 번호 4비트 데이터그램의 IP 프로토콜 버전을 명시 라우터는 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할지 결정 헤더 길이 네비트로 IP 데이터그램에서 실제 페이로드가 시작하는 곳을 결정 IPv4 데이터그램은 헤더에 가변 길이와 옵션을 포함하므로 대부분 IPv4 데이터그램은 옵션을 포함하지 않으므로 대체로 IPv4 데이터그램 헤더는 20바이트이다. 서비스 타입(TOS) 서로 다른 유형의 IP 데이터그램을 구별 데이터그램 길이 바이트로 계산한 IP 데이터그램(헤더와 데이터)의 전체 길이 식별자, 플래그, 단편화 오프..