57. Insert Interval
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 57풀이 날짜: 2025/10/21 1. 문제 이해이미 정렬된 구간 배열 intervals가 주어지고, 새로운 구간 newInterval을 삽입하면서 겹치는 구간은 병합하여 최종 배열을 반환하는 문제이다. 2. 접근 방식 — 단계별 처리핵심 아이디어: 세 구간으로 나누어 처리newInterval보다 앞쪽에 겹치지 않는 구간 → 그대로 결과에 pushnewInterval과 겹치는 구간 → 시작값은 min, 끝값은 max로 병합newInterval 이후 뒤쪽 구간 → 그대로 결과에 push이렇게 하면 한 번의 순회로 모든 조건을 처리가 가능하다. 3. 풀이 코드/** * @param {number[][]} intervals * @param {number[..
56. Merge Intervals
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 56풀이 날짜: 2025/10/21 1. 문제 이해여러 구간(interval)이 주어졌을 때, 겹치는 구간을 병합하고, 겹치지 않는 구간은 그대로 유지한다. 2. 접근 방식 — 정렬 + 병합핵심 아이디어: 시작값 기준으로 정렬 후, 연속되는 구간을 병합한다.intervals를 시작값 기준으로 오름차순 정렬current 변수에 현재 병합 중인 구간 저장반복문으로 각 구간과 current 비교:겹치는 경우(current[1] >= intervals[i][0]): current[1] = max(current[1], end) → 끝값 갱신겹치지 않는 경우(current[1] current를 결과 배열에 push, current 갱신 3. 풀이 코드/** * @..
3. Longest Substring Without Repeating Characters
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 3풀이 날짜: 2025/10/19 1. 문제 이해문자열 s에서 중복 문자가 없는 가장 긴 부분 문자열(substring)의 길이를 구하는 문제이다.즉, 문자열을 순회하면서 반복되는 문자가 생기기 전까지의 최대 길이를 구해야 한다. 2. 접근 방식 — Sliding Window (슬라이딩 윈도우)슬라이딩 윈도우(Sliding Window)를 사용하면, 중복 문자가 나올 때마다 윈도우를 한 칸씩 이동시키며 O(n) 시간 내에 해결할 수 있다. 현재 “중복이 없는 문자열 구간”을 윈도우로 유지하면서, 새로운 문자를 오른쪽에 추가할 때 중복이 생기면 왼쪽 첫번째를 중복이 없을 때까지 제거한다. 이 과정을 반복하며 매 순간 가장 긴 윈도우의 길이를 갱신하면 된다..
209. Minimum Size Subarray Sum
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 209풀이 날짜: 2025/10/19(못품) 1. 문제 이해양의 정수 배열 nums와 정수 target이 주어질 때, 연속된 부분 배열(subarray)의 합이 target 이상이 되는 가장 짧은 길이를 구하는 문제다. 만약 조건을 만족하는 부분 배열이 없다면 0을 반환한다. 2. 접근 방식 — Sliding Window (슬라이딩 윈도우)이 문제는 모든 부분 배열을 검사하면 O(n²) 시간이 걸리므로 비효율적이다. 대신 슬라이딩 윈도우(Sliding Window) 개념을 사용하면 O(n)에 해결할 수 있다. 핵심 아이디어는 다음과 같다. “합이 target 이상이 될 때마다, 왼쪽 포인터를 최대한 오른쪽으로 이동시켜 최소 길이를 찾는다.” 즉,오른쪽 ..
HTTPS – 안전한 인터넷 통신의 절차(핸드셰이크)
·
Computer Science/Network
인터넷에서 https://로 시작하는 웹사이트를 접속할 때, 단순히 페이지를 불러오는 것이 아니라 데이터가 안전하게 암호화되어 전달된다. HTTPS는 SSL/TLS 프로토콜을 기반으로, 클라이언트와 서버 간에 신뢰할 수 있는 보안 통신 채널을 구축한다. 이때 HTTPS 통신의 핵심 과정 중 하나가 핸드셰이크(Handshake)이다. 핸드셰이크란 클라이언트와 서버가 보안 세션(Security Session)을 생성하고, 사용할 암호화 방식과 키를 안전하게 합의하는 과정을 말한다. 즉, 안전하게 통신하기 위한 “서로 인사하고, 통신 규칙과 비밀 키를 정하는 단계”라고 이해하면 쉽다. 아래에서는 HTTPS 통신을 핸드셰이크 단계와 실제 데이터 전송 단계로 나누어, 데이터를 안전하게 보호하는 원리와 공개키/개인..
네트워크에서 데이터는 어떻게 전달될까(TCP/IP 모델)
·
Computer Science/Network
TCP/IP 4계층을 따라가는 데이터의 여정 우리가 웹 브라우저에 www.google.com을 입력하고 엔터를 누를 때, 눈앞에는 단순히 페이지가 열리는 것처럼 보이지만, 사실 그 뒤에서는 수많은 데이터 조각들이 정교한 협력을 통해 움직이고 있다. 인터넷 프로토콜 스위트(Internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 한다. 오늘은 이 과정을 TCP/IP 모델을 중심으로, 데이터가 보내질 때(캡슐화) 그리고 도착할 때(비캡슐화) 무슨 일이 일어나는지 단계별로 살펴본다. 1. TCP/IP 모델이란?TCP/IP 모델은 인터넷에서 컴퓨터들이 정보를 주고받기 위한..