본문 바로가기
728x90
반응형

전체 글313

[Network] TCP RDT sequence number 이전 포스팅에서 파일을 보낼 때 패킷을 보낼 때마다 sequence number를 부여했다고 했다. 이 sequence number를 통해 패킷의 순서를 확인할 수 있는데 sequence number가 구체적으로 어떻게 부여되는지 보려고 한다. 다음 그림은 파일 크기가 500,000 bytes이고 MSS(Maximum Segement Size)가 1,000 bytes일 때의 sequence number 예시이다 우선 sequence number는 byte 단위로 부여된다. 단순히 순서를 의미하는게 아니고 byte 단위로 부여되기 때문에 MSS가 1,000 bytes라면 0, 1000, 2000... 이렇게 segement의 MSS 단위로 늘어난다. sequence number.. 2023. 4. 27.
[백준 2042][파이썬] 구간 합 구하기(펜윅 트리) https://www.acmicpc.net/problem/2042 2042번: 구간 합 구하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄 www.acmicpc.net https://growth-coder.tistory.com/162 이전 포스팅에서 펜윅 트리(BIT, 이진 인덱스 트리)의 사용법에 대해서 공부하였다. 이 펜윅 트리를 사용하면 구간 합 문제를 쉽게 구현할 수 있다. 우선 갱신 함수이다. def update(i, num): arr[i]+=num while i0: res+=tree[i] i-.. 2023. 4. 26.
[백준 17386][파이썬] 선분 교차 1 https://www.acmicpc.net/problem/17386 17386번: 선분 교차 1 첫째 줄에 L1의 양 끝 점 x1, y1, x2, y2가, 둘째 줄에 L2의 양 끝 점 x3, y3, x4, y4가 주어진다. 세 점이 일직선 위에 있는 경우는 없다. www.acmicpc.net 이전 포스팅에서 CCW 알고리즘을 활용하여 선분 교차하는 방법에 대해서 배웠다. https://growth-coder.tistory.com/163 이 방식을 그대로 사용하면 된다. 우선 세 점이 일직선 상에 존재하는 경우가 없다고 했으므로 ccw의 값이 0인 경우는 신경쓰지 않아도 된다. 그럼 예외 사항은 아래 그림과 같은 경우만 신경쓰면 된다. 이 경우는 선분 AC를 기준으로 한 번, 선분 BD를 기준으로 두 번 .. 2023. 4. 25.
[Algorithm][백준 11758][파이썬] CCW 알고리즘을 활용하여 선분의 교차 여부 판단 어떠한 세 점 A, B, C가 다음과 같이 존재한다고 하자. 선분 AB에 대하여 점 C가 왼쪽에 있는지 오른쪽에 있는지 어떻게 판별할 수 있을까? 여러가지 방법이 존재하겠지만 외적을 사용하면 쉽게 구할 수 있다. 우선 외적의 정의부터 보자. 벡터 u와 벡터 v의 외적을 구하는 공식은 아래와 같다. sin 값은 180도를 기준으로 부호가 바뀐다. 0~180도 전까지는 양수, 180도는 0, 180~360도 전까지는 음수이다. 위의 점 A, B, C도 이를 이용해보자. 먼저 선분 AB, AC를 만들어본다. 벡터 AB와 벡터 AC의 외적 값이 양수라면 C는 선분 AB의 오른쪽에 존재하는 것이고 음수라면 왼쪽에 존재하는 것이다. 다음 그림은 C가 선분 AB의 왼쪽에 있을 때이다. 각도가 180도 넘어가기 때문에.. 2023. 4. 24.
728x90
반응형