본문 바로가기
반응형
[네트워크 프로그래밍] Week 3: 네트워크 프로토콜 심화 (TCP) 네트워크 프로토콜 심화 (TCP) Day 1: TCP 연결 설정과 해제 강의 내용:TCP 프로토콜의 기본 개념TCP의 역할과 특징신뢰성 있는 데이터 전송 보장TCP 연결 설정 (3-Way Handshake)SYN, SYN-ACK, ACK 패킷연결 설정 과정의 상세 설명TCP 연결 해제 (4-Way Handshake)FIN, ACK 패킷연결 해제 과정의 상세 설명실습:TCP 연결 설정과 해제 과정 실습# TCP 서버import socketdef start_tcp_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 12345)) server_socke.. 2024. 6. 4.
[네트워크 프로그래밍] Week 2: 소켓 프로그래밍 기초 및 고급 소켓 옵션 소켓 프로그래밍 기초 및 고급 소켓 옵션Day 1: 소켓 프로그래밍 기초 강의 내용:소켓의 개념과 역할소켓의 정의와 역할소켓 통신의 기본 구조소켓 타입과 프로토콜스트림 소켓 (TCP)데이터그램 소켓 (UDP)원시 소켓 (Raw Socket)Python 소켓 라이브러리소켓 생성 (socket.socket())소켓 바인딩 (bind())소켓 청취 (listen())소켓 연결 (accept())실습:기본 소켓 프로그래밍 예제# TCP 서버import socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind(('localhost', 12345))server_socket.listen(5)print("TCP 서버.. 2024. 6. 4.
[코딩테스트] 8주차: 실전 모의 코딩 테스트 실전 모의 코딩 테스트학습 주제실제 코딩 테스트와 유사한 환경에서 연습시간 관리와 문제 해결 전략 수립학습 목표실전 코딩 테스트 환경에 익숙해지고, 시간 내에 문제를 해결할 수 있는 능력을 기른다.다양한 문제 해결 전략을 익히고, 이를 통해 효율적으로 문제를 해결할 수 있다.학습 자료온라인 저지 플랫폼 (예: LeetCode, HackerRank, Codeforces)에서 제공하는 실전 문제실습 문제각 문제를 실제 코딩 테스트 환경에서 제한 시간 내에 풀어보세요. 문제는 LeetCode, HackerRank, Codeforces 등의 플랫폼에서 선택하여 진행할 수 있습니다. 1. Two Sum (LeetCode)주어진 배열에서 두 숫자의 합이 목표 값이 되는 인덱스 쌍을 찾으세요.문제 링크def two_.. 2024. 6. 4.
[코딩테스트] 7주차: 고급 자료구조 고급 자료구조학습 주제세그먼트 트리펜윅 트리 (Fenwick Tree)우선순위 큐와 힙학습 목표세그먼트 트리와 펜윅 트리의 개념을 이해하고, 다양한 쿼리 문제에 적용할 수 있다.우선순위 큐와 힙을 사용하여 효율적으로 데이터 구조를 관리하고, 관련 문제를 해결할 수 있다.학습 자료세그먼트 트리의 개념 및 구현 방법펜윅 트리의 개념 및 구현 방법우선순위 큐와 힙의 개념 및 활용실습 문제1. 세그먼트 트리를 사용한 범위 쿼리 문제주어진 배열에 대해 세그먼트 트리를 사용하여 범위 합 쿼리를 처리하는 함수를 작성하세요.class SegmentTree: def __init__(self, data): self.n = len(data) self.tree = [0] * (2 * self.n.. 2024. 6. 4.
[코딩테스트] 6주차: 탐욕 알고리즘과 최적화 탐욕 알고리즘과 최적화학습 주제탐욕 알고리즘의 개념과 적용 방법탐욕 알고리즘을 사용한 문제 풀이 (활동 선택 문제, 최소 신장 트리 - Kruskal, Prim)학습 목표탐욕 알고리즘의 원리를 이해하고 다양한 문제에 적용할 수 있다.탐욕 알고리즘을 사용하여 최적의 해를 찾는 문제를 해결할 수 있다.활동 선택 문제, 최소 신장 트리 등의 대표적인 탐욕 알고리즘 문제를 해결할 수 있다.학습 자료탐욕 알고리즘 개요와 원리활동 선택 문제 설명 및 구현최소 신장 트리 알고리즘 (Kruskal, Prim) 설명 및 구현실습 문제1. 활동 선택 문제주어진 활동들의 시작 시간과 종료 시간을 기반으로 최대한 많은 활동을 선택하는 문제를 탐욕 알고리즘을 사용하여 해결하는 함수를 작성하세요.def activity_selec.. 2024. 6. 4.
[코딩테스트] 5주차: 백트래킹과 분할 정복 백트래킹과 분할 정복학습 주제백트래킹의 개념과 활용 (N-Queen 문제, 퍼즐 문제)분할 정복 알고리즘 (Merge Sort, Quick Sort 재방문, Fast Exponentiation)학습 목표백트래킹의 개념과 다양한 문제에서의 활용 방법을 이해하고 구현할 수 있다.분할 정복 알고리즘의 원리를 이해하고 구현할 수 있다.N-Queen 문제, 퍼즐 문제 등의 대표적인 백트래킹 문제를 해결할 수 있다.학습 자료백트래킹 개요와 원리분할 정복 알고리즘 설명 및 구현실습 문제1. N-Queen 문제 해결N x N 체스판에 N개의 퀸을 놓는 문제를 백트래킹을 사용하여 해결하는 함수를 작성하세요.def is_safe(board, row, col): for i in range(col): if .. 2024. 6. 4.
[코딩테스트] 4주차: 트리와 이진 탐색 트리 트리와 이진 탐색 트리학습 주제트리의 기본 개념과 순회 방법 (전위, 중위, 후위 순회)이진 탐색 트리 (BST)의 삽입, 삭제, 탐색균형 잡힌 트리 (AVL 트리, 레드-블랙 트리)학습 목표트리 자료구조의 기본 개념을 이해하고 구현할 수 있다.이진 탐색 트리의 삽입, 삭제, 탐색 연산을 구현할 수 있다.균형 잡힌 트리의 개념을 이해하고 기본적인 구현을 할 수 있다.학습 자료트리의 기본 개념 설명 및 구현이진 탐색 트리 (BST) 설명 및 구현AVL 트리와 레드-블랙 트리의 기본 개념 설명실습 문제트리 순회 (전위, 중위, 후위 순회)주어진 트리를 전위, 중위, 후위 순회하는 함수를 작성하세요.class Node: def __init__(self, key): self.left = Non.. 2024. 6. 4.
[코딩테스트] 3주차: 그래프 알고리즘 그래프 알고리즘학습 주제:그래프의 표현 방법 (인접 행렬, 인접 리스트)그래프 탐색 알고리즘 (DFS, BFS)최단 경로 알고리즘 (Dijkstra, Floyd-Warshall)학습 목표:그래프의 표현 방법을 이해하고 구현할 수 있다.깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 알고리즘을 이해하고 적용할 수 있다.다양한 최단 경로 알고리즘을 이해하고 문제에 적용할 수 있다.학습 자료:그래프의 표현 방법 설명 및 구현깊이 우선 탐색(DFS) 알고리즘 설명 및 구현너비 우선 탐색(BFS) 알고리즘 설명 및 구현Dijkstra 알고리즘 설명 및 구현Floyd-Warshall 알고리즘 설명 및 구현실습 문제:1. 그래프 표현 방법인접 행렬과 인접 리스트를 사용하여 그래프를 구현하세요.# 인접 행렬def .. 2024. 6. 4.
[코딩테스트] 2주차: 동적 프로그래밍 (Dynamic Programming) 동적 프로그래밍 (Dynamic Programming)학습 주제:동적 프로그래밍의 기초 (Memoization, Tabulation)대표적인 DP 문제 풀이 (피보나치 수열, 배낭 문제, 최대 부분합 문제)학습 목표:동적 프로그래밍의 개념과 기초적인 구현 방법을 이해하고 적용할 수 있다.대표적인 동적 프로그래밍 문제를 해결하여 문제 해결 능력을 향상시킬 수 있다.학습 자료:동적 프로그래밍 개요와 원리피보나치 수열 (Top-Down, Bottom-Up) 구현 방법배낭 문제와 최대 부분합 문제 설명 및 구현실습 문제:1. 피보나치 수열 구현 (Top-Down, Bottom-Up)주어진 정수 n에 대해 피보나치 수열의 n번째 값을 구하는 함수를 작성하세요.# Top-Down Approach with Memoi.. 2024. 6. 4.
[코딩테스트] 1주차: 고급 정렬 알고리즘과 탐색 고급 정렬 알고리즘과 탐색학습 주제고급 정렬 알고리즘퀵 정렬 (Quick Sort)병합 정렬 (Merge Sort)탐색 알고리즘이진 탐색 (Binary Search)변형된 이진 탐색학습 목표고급 정렬 알고리즘의 원리와 구현 방법을 이해하고, 시간 복잡도와 공간 복잡도를 분석할 수 있다.이진 탐색을 사용하여 효율적으로 데이터를 탐색할 수 있다.다양한 변형된 이진 탐색 문제를 해결할 수 있다.학습 자료퀵 정렬 설명 및 구현병합 정렬 설명 및 구현이진 탐색 설명 및 구현실습 문제1. 퀵 정렬 구현주어진 리스트를 퀵 정렬 알고리즘을 사용하여 정렬하는 함수를 작성하세요.def quick_sort(arr): if len(arr) pivot] return quick_sort(left) + middle +.. 2024. 6. 4.
반응형