본문 바로가기

전체 글151

[3] URL vs URI 차이점 URL : uniform resource locator URI : uniform resource identifier URI 는 리소스를 식별하기 위해 필요한 정보 URL 은 리소스를 식별하기 위해 필요한 정보 중에 위치 즉 URL 은 URI에 포함되는 개념이다. URI 라고 하는 이유는 URI 에는 URL 과 URN 이 있는데 보통 URN은 사용하지 않으므로 URI를 URL의 의미로 쓰는 경우가 많기 때문이다. URL 문법 scheme://[userInfo@]host[:port][/path][?query][#fragment] scheme : 프로토콜 ( http, https , ... ) userInfo : 사용자정보. 거의 사용안함 host : 도메인 이름 또는 아이피주소 ( www.naver.com .. 2021. 3. 14.
[2] TCP vs UDP 의 특징( 면접 단골 질문) TCP = transmission control protocol (전송제어 프로토콜) [1]onejunu.tistory.com/121 에서 HTTP message 위에 TCP 패킷을 감싸는 데 TCP 세그먼트에는 대략 다음과 같은 정보가 포함된다. [1] http메세지가 서버로 가는 과정 소켓라이브러리 = C언어 네트워크 표준 라이브러리로 여기서는 도메인이름(ex. naver.com)을 아이피주소로 바꾸기 위한 용도로 쓴다는 정도만 알면 될듯하다. 1. http 메세지를 어플리케이션 계층에 onejunu.tistory.com 출발지 port , 도착지 port , 전송제어, 순서 , 검증정보... port번호만 있는것이 아니라 전송제어와 순서 검증정보와 같은 정보들도 포함된다. 이러한 정보를 바탕으로 연.. 2021. 3. 14.
[1] http메세지가 서버로 가는 과정 소켓라이브러리 = C언어 네트워크 표준 라이브러리로 여기서는 도메인이름(ex. naver.com)을 아이피주소로 바꾸기 위한 용도로 쓴다는 정도만 알면 될듯하다. 1. http 메세지를 어플리케이션 계층에서 만든다. 2. 메세지를 소켓라이브러리를 통과시킨다. 3. TCP 패킷으로 감싼다. ( 출발지 port 번호 -> 목적지 port 번호) 4. ip 패킷으로 감싼다. ( 출발지 ip -> 목적지 ip) 5. ethernet frame으로 감싼다 (자세히 알필요 X) 6. 서버로 전송함. 참조: webdir.tistory.com/264 TCP/IP, Socket 라이브러리, 리졸버 HTTP의 메시지를 만들고 웹 서버에 송신할때 이를 OS에 의뢰하여 송신하게 되는데, 이때 URL 안에 쓰여있는 서버의 도메.. 2021. 3. 14.
[JAVA] 백준 - 스위치 1395 (세그먼트트리 + lazy propagation) www.acmicpc.net/problem/1395 1395번: 스위치 첫 줄에는 스위치의 개수 N(2 ≤ N ≤ 100,000)과 처리할 일의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 M개의 줄에 대해 각 줄에 처리할 일에 대한 정보가 담겨진 세 개의 정수 O, Si, Ti가 입력된다. O www.acmicpc.net 세그먼트트리를 풀기위한 기본 템플릿은 onejunu.tistory.com/119 [JAVA] 세그먼트 트리구현법과 lazy propagation (feat. 백준) www.acmicpc.net/blog/view/26 세그먼트 트리 나중에 업데이트 해야지! 배열 A가 있고, 여기서 다음과 같은 두 연산을 수행해야하는 문제가 있습니다. 10999번 문제: 구간 합 구하기 2 .. 2021. 3. 14.
[JAVA] 세그먼트 트리구현법과 lazy propagation (feat. 백준) www.acmicpc.net/blog/view/26 세그먼트 트리 나중에 업데이트 해야지! 배열 A가 있고, 여기서 다음과 같은 두 연산을 수행해야하는 문제가 있습니다. 10999번 문제: 구간 합 구하기 2 구간 l, r (l ≤ r)이 주어졌을 때, A[l] + A[l+1] + ... + A[r-1] + A[r]을 구해서 출력하기 i번째 www.acmicpc.net 여기서 공부한 내용을 바탕으로 간단하게 정리해보고자 한다. 세그먼트 트리를 공부하면서 분할정복에 대한 감을 좀더 잘 잡을 수 있는거 같다. 세그먼트 트리 구현을 잊어버려도 되지만 감은 계속 붙잡고 있었으면 하는 마음에 본인이 이해한 내용을 그림과 코드로 설명한다. 설명은 위에 백준님이 설명해준 그림을 바탕으로 설명하겠다. 먼저 백준님글을 .. 2021. 3. 12.
[JAVA] 세그먼트 트리 ( SegmentTree ) www.acmicpc.net/blog/view/9 세그먼트 트리 (Segment Tree) 문제 배열 A가 있고, 여기서 다음과 같은 두 연산을 수행해야하는 문제를 생각해봅시다. 구간 l, r (l ≤ r)이 주어졌을 때, A[l] + A[l+1] + ... + A[r-1] + A[r]을 구해서 출력하기 i번째 수를 v로 바꾸기. A[i www.acmicpc.net 백준 사이트의 설명을 보며 나름 자바 코드로 정리해봤다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; class Main{ static long[] segTree; static long[] a; /** * nod.. 2021. 3. 7.
[JAVA] 백준 - 캐슬 디펜스 17135 (테케 다 맞는데 틀린다면?) www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 자꾸 틀린다면 꼭 점검해야할 상황을 소개한다. (본인 경험) 1. 궁수 3명을 배치하는 모든 경우를 구했는가? - 문제에서 N+1 번째 칸에 궁수 3명을 배치한다고 하였다. 한 칸에 한명만 올 수 있다. 따라서 M개의 자리에서 3개를 선택하는 모든 경우의수를 구해야한다. Combination 로직을 DFS로 구현해주면 된다. 여기에서 M = 5 일때 3개의 자리를 선택하는 경우의 수는 5C3 이므로 10가지가 나와야한다... 2021. 3. 4.
[JAVA] Enum 내부 동작원리를 중심으로 알아보기 처음 Enum 에 대해 배울 때 단순히 여러 상수를 정의할 때 사용하였다. 상수를 그냥 쓰다보면 예상치 못한 오류가 생길 수 있으므로 따로 열거형으로 정의해서 사용한다. JAVA 에서는 Enum 안에 함수도 들어가는 거 같고 생각보다 복잡한 느낌이 있어서 이번 기회에 재대로 정리해본다. 아래의 예시를 보자. class Korea { static final int SEOUL = 0; static final int DAEGU = 1; static final int BUSAN = 2; } class America { static final int LA = 0; static final int NEWYORK = 1; } public class Main{ private static void main(String[].. 2021. 2. 26.
[JAVA] 위상정렬 (TopologySort) - 위상정렬이란? 순서가 정해져 있는 작업들의 목록들을 가지고 전체 작업 순서를 결정하도록 하는 알고리즘. 이를 위해서는 사이클이 없는 방향그래프에서만 해야한다. 아래 그래프로 예를 들겠다. 1번 작업은 2번보다 먼저 해야한다. 이것을 방향그래프로 나타내었다. 2번은 5번 보다 먼저 해야 한다. 5번은 4번 보다 먼저 해야한다. 만약 위와 같은 작업 스케줄이 있다면 어떻게 진행하면 좋을 것인가? 1 - 2 - 3 - 5 - 4 1 - 3 - 2 - 5 - 4 위 2가지 경우중에서 한가지 선택하여 진행하면 된다. 먼저 차수에 대해 정의하겠다. 한 정점의 차수 = 해당 정점보다 먼저 선행되어야 하는 작업의 수 예를들어, 3번의 차수는 1이다. 1번 작업이 선행되어야 하기 때문이다. 5번의 차수는 2이다. 2.. 2021. 2. 24.