네트워크 (3) - 전송 계층
·
CS/네트워크
TCP, UDP 목적과 특징포트를 통한 프로세스 식별패킷의 최종 송수신 대상 → 호스트가 실행하는 프로세스 → 포트 번호로 식별TCP, UDP 헤더: 포트 번호를 포함하고 있음포트 번호는 개발자가 자주 다루는 정보 중 하나이므로 좀 더 자세히 알아보자번호의 범위에 따라 3가지 종류로 나뉨포트 종류포트 번호 범위잘 알려진 포트0 ~ 1023등록된 포트1024 ~ 49151동적 포트49152 ~ 65535잘 알려진 포트가장 대중적으로 사용되는 애플리케이션을 위한 포트 번호범용적으로 사용되는 프로토콜이 주로 사용하는 포트 번호 목록잘 알려진 포트 번호설명20, 21FTP22SSH23TELNET53DNS67, 68DHCP80HTTP443HTTPS등록된 포트흔하게 사용되는 애플리케이션 프로토콜에 할당등록된 포트 ..
네트워크 (2) - 물리 계층, 데이터링크 계층, 네트워크 계층
·
CS/네트워크
물리 계층과 데이터링크 계층이더넷이더넷: 통신 매체를 통해 신호를 송수신하는 방법, 데이터 링크 계층에서 주고받는 데이터(프레임) 형식 등이 정의된 기술이더넷 프레임이더넷 기반의 네트워크에서 주고받는 프레임프리앰블송수신지 동기화를 위해 사용되는 8바이트 크기의 정보수신지 입장에서 프리앰블 비트를 통해 현재 이더넷 프레임이 수신되고 있다는 사실을 알게됨송수신지 MAC 주소송수신지를 특정할 수 있는 6바이트 길이의 MAC 주소가 명시되어, 콜론(:)으로 구분된 12자리 16진수로 구성`ab:cd:ab:cd:00:01`MAC 주소는 네트워크 인터페이스마다 하나씩 부여네트워크 인터페이스: 네트워크를 향하는 통로, 연결 매체와의 연결 지점타입/길이MAC 주소의 타입/길이 필드에 명시된 크기가 1500 이하(16진..
[백준/Java] 11660 - 구간 합 구하기 5
·
코딩테스트/백준
https://www.acmicpc.net/problem/11660문제풀이단순히 완전탐색으로 구현하면 시간초과가 날 수 밖에 없다 (100,000 * 1024 * 1024)따라서 미리 합을 계산해두고 답을 내놓아야 한다 누적 합을 구하는 과정을 간단한 2 x 2 배열로 알아보자`(2, 2)`의 누적 합을 구하려면 어떻게 해야할까?`(1, 2)` 까지의 누적합 + `(2, 1)` 까지의 누적합 + 본인 값을 더하면 될 것 같다하지만 그림을 보면 `(1, 1)` 부분이 겹치므로 하나를 빼주어야 한다식을 세워보면sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1] + arr[i][j]다음은 3 x 3 배열에서 주어진 범위의 누적합을 구해보자`x1 y1 x2 y2` 가..
[백준/Java] 9465 - 스티커
·
코딩테스트/백준
https://www.acmicpc.net/problem/9465문제풀이특정 열에서 어떤 스티커를 뗄 지 결정하면, 그 결정에 다음 열의 선택에 영향을 준다N이 매우 크므로 완전 탐색으로는 풀 수 없고 O(N) 수준의 알고리즘을 사용해야 한다 -> DP 활용 `i` 열에서 할 수 있는 선택은 3가지 이다아무 스티커도 떼지 않는다위쪽 스티커를 뗀다아래쪽 스티커를 뗀다dp 배열 선언`dp[i][상태]` : i 열까지 갔을 때 얻을 수 있는 최대 점수상태 0: `i` 열에서 아무 스티커도 떼지 않음상태 1: `i` 열에서 위쪽 스티커를 뗌상태 2: `i` 열에서 아래쪽 스티커를 뗌 자세한 것은 코드를 보자코드import java.io.BufferedReader;import java.io.InputStreamR..
네트워크 (1) - 네트워크의 큰 그림
·
CS/네트워크
네트워크의 큰 그림클라이언트와 서버호스트: 네트워크를 통해 주고받는 정보를 최초로 송신하고 최종 수신하는 노드예) 노트북 웹 브라우저로 구글에 접속했다면 노트북과 구글 서버 컴퓨터가 호스트로서 정보를 주고 받음요청(Request)을 보내는 호스트 ⇒ 클라이언트응답(Response)을 보내는 호스트 ⇒ 서버패킷 교환 네트워크네트워크를 통해 주고받는 데이터는 한 번에 송수신되지 않고 여러 데이터로 쪼개져서 송수신네트워크를 통해 송수신되는 데이터의 단위 ⇒ 패킷페이로드: 패킷에서 송수신 하고자 하는 데이터헤더, 트레일러: 패킷에 추가되는 부가 정보전송 방식유니캐스트: 일대일로 메시지를 주고받음브로드캐스트: 네트워크 상의 모든 호스트에게 메시지를 전송프로토콜두 호스트가 패킷을 주고받는다면 양쪽 모두 패킷 속 내..
[백준/Java] 9663 - N-Queen
·
코딩테스트/백준
https://www.acmicpc.net/problem/9663문제풀이백트래킹을 활용하는 대표적인 문제이다백트래킹은 DFS와 비슷하지만 가능성이 없다고 생각되면 그 경우의 수는 더 이상 탐색하지 않는 것이다 2차원 배열을 사용할 수도 있지만 1차원 배열로 단순하게 풀 수도 있다`queen[i] = j` => `i` 번째 행, `j` 번째 열에 퀸을 놓는다 0번째 행, 0번째 열부터 퀸을 놓으면서 놓은 곳이 조건에 부합하는 지 확인하면서 진행한다퀸은 상하좌우, 대각선으로 움직인다(0, 0)에 퀸을 놓는다면 다음 X 칸에는 퀸을 놓을 수 없다0번째 행에 퀸을 놓았다면 더이상 같은 행에는 퀸을 놓지 못하므로 다음 행으로 넘어간다1번째 행에 퀸을 놓을 때, 이전 행에 놓은 퀸과 동선이 겹치지 않는지 확인한다`..