본문 바로가기

전체 글137

[web] 쿠키와 세션 1. 배경 HTTP는 connectionless, stateless 한 성질을 가지고 있다. connectionless : request 후 response를 받으면 연결을 끊음. 그냥 끝 stateless : 통신이 끝나면 그 상태 정보를 유지하지 않음. 즉, HTTP는 request -> response 후 연결을 끊고, 통신이 끊어지면 그 상태 정보(누가 어디서 접속했는지 ... )는 유지하지 않는다. 이렇게 되면 페이지를 요청할 때마다(이동할 때마다) 로그인이 풀리게 된다. 이를 보완하기 위해 쿠키, 세션이 등장 2. 쿠키 클라이언트(로컬)에 저장되는 키-값 데이터 파일 유효 시간이 있으면, 브라우저가 종료되어도 로그인이 유지된다. 방법 response 헤더에 Set-Cookie 속성 reques.. 2024. 2. 19.
백준 s2 2805 나무 자르기 c++ https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 풀이 문제 설명과 풀이는 https://kyj0032.tistory.com/52와 유사하게 parametric search 썼음 조건(잘린 나무 합이 M 이상)에 맞는 절단기 높이 H의 최댓값을 구해야 함. 절단기 높이 H는 최대 10^9으로 1씩 내려가며 완전탐색을 할 수가 없음. 대신 이분탐색으로 높이 H를 탐색하며 조건에 맞는 최적해 찾기 정리하자면, .. 2024. 2. 17.
백준 s2 16401 과자 나눠주기 c++ https://www.acmicpc.net/problem/16401 16401번: 과자 나눠주기 첫째 줄에 조카의 수 M (1 ≤ M ≤ 1,000,000), 과자의 수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 과자 N개의 길이 L1, L2, ..., LN이 공백으로 구분되어 주어진다. 과자의 길이는 (1 ≤ L1, L2, ..., LN ≤ 1, www.acmicpc.net 문제 설명과 풀이는 https://kyj0032.tistory.com/52 참고, 거의 유사함. 다만 랜선 자르기 문제는 불가능한 경우의 수가 없었지만, 이 문제는 0을 출력해야 함. 단, 모든 조카에게 같은 길이의 막대과자를 나눠줄 수 없다면, 0을 출력한다. 코드 /*boj s2 16401 과자 나눠주기*/ .. 2024. 2. 17.
백준 s4 1822 차집합 c++ https://www.acmicpc.net/problem/1822 1822번: 차집합 첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소 www.acmicpc.net /*boj s4 1822 차집합*/ #include #include #include #define MAXN 500010 using namespace std; int N, M; int A[MAXN]; int B[MAXN]; vector ans; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> N >> M.. 2024. 2. 17.
백준 s5 10815 숫자 카드 c++ https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 코드 /*boj s5 10815 숫자 카드*/ #include #include #define MAXN 500010 using namespace std; int N, M; int card[MAXN]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> N; for (int i = 0; i < N; i++) cin.. 2024. 2. 17.
[web] 브라우저 1. 브라우저 동작 원리 사용자 --요청--> 브라우저 (.html파일 해석 후 보여줌) --자원 요청--> 서버 Parse Tree -> DOM(Document Object Tree) 트리를 만듦 css -> CSSOM(CSS Object Tree) 트리 만듦 DOM 트리 + CSSOM 트리 = 렌더 트리 만듦 만들어진 렌더트리로 레이아웃을 실행하여 위치 계산 브라우저에 직접 나타내기 (페인트) 1. 2. 파싱 1-1. html 파싱 과정 html -> parse tree -> DOM tree parse tree: html 문자열을 단순히 구조화 DOM tree: 실제 html 엘리먼트(태그)로 구성 1-2. html parser 특징 오류에 너그럽다. (fogiving nature) 에러가 있어도 자.. 2024. 2. 16.
백준 s2 1654 랜선 자르기 c++ https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 가지고 있는 K개의 랜선을 잘라 N개를 만들어야 한다. 이때 자른 랜선의 최대 길이는? 풀이 (https://blog.encrypted.gg/985) Parametric Search 정의) 조건을 만족하는 최소/최댓값 문제(최적화 문제)를 결정 문제로 변환해 이분탐색을 수행하는 방법 보통은 조건을 이분탐색으로 해서 답을 구하지만, 답의 범위를 이분탐색으로 나누어서.. 2024. 2. 16.
백준 g4 2295 세 수의 합 c++ https://www.acmicpc.net/problem/2295 2295번: 세 수의 합 우리가 x번째 수, y번째 수, z번째 수를 더해서 k번째 수를 만들었다라고 하자. 위의 예제에서 2+3+5=10의 경우는 x, y, z, k가 차례로 1, 2, 3, 4가 되며, 최적해의 경우는 2, 3, 4, 5가 된다. k번째 수가 최 www.acmicpc.net 문제 N개의 수로 이루어진 집합 U가 있을 때, 각 원소 a, b, c, k를 골랐을 때 a + b + c = k 를 만족하는 최대 k 구하기 집합이므로 각 원소는 중복되지 않으나, a b c 는 서로 같아도 된다. 풀이 1. O(N^3*logN) 풀이 1) 세 원소를 고른다. 1000C3 -> N^3 2) 고른 세 원소의 합이 존재하는지 binar.. 2024. 2. 16.
백준 s2 18870 좌표 압축 c++ https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 문제 X_i` = X_i보다 작은, 중복되지 않은, 다른 원소의 개수 풀이 배열을 두 번씩 돌리면서 각각 X_j의 개수를 세는 방법도 있지만 N O(NlogN) 코드 /*boj s2 18870 좌표 압축*/ #include #include #include #define MAXN 1000010 using namespace std; int N; in.. 2024. 2. 15.