
1. DNS란?- Domain Name System- 사람이 읽을 수 있는 도메인 이름(예: google.com)을 컴퓨터가 이해하는 IP 주소(예: 192.168.0.1)로 바꿔 1) nslookpup- Name Server Lookup- DNS 정보를 직접 조회할 수 있게 해주는 명령줄 도구- 역할: 특정 도메인의 IP 주소, MX 레코드, TXT 레코드 등을 확인, 네트워크 문제 진단이나 메일 서버 설정 확인 시 유용nslookup google.com142.250.207.110 입력 시 google.com으로 접속됨2) MX레코드- 도메인으로 메일을 보낼 때, 실제로 어떤 메일 서버로 보내야 할지를 알려주는 DNS 레코드- set type=mx : 메일 수신용 서버 주소nslookup> set ty..
1. SSL- Secure Sockets Layer- 네트워크 통신을 암호화하여 안전하게 합니다.- 이메일, 웹(https), FTP 등에 사용- 클라이언트와 서버 사이의 데이터를 제3자가 볼 수 없도록 암호화- 현재는 TLS로 대체되었다 2. TLS- Transport Layer Security- SSL의 후속 버전으로, 데이터를 더 안전하게 암호화- 이메일, 웹사이트(https), VPN 등에서 광범위하게 사용- SMTP, POP3 등과 함께 사용되어 이메일 통신을 보호- STARTTLS: 기존 포트를 그대로 사용하면서 TLS로 연결을 업그레이드 1) SMTP- Simple Mail Transfer Protocol- 이메일을 전송할 때 사용하는 프로토콜- 사용자가 메일을 보낼 때, 메일 서버 간에 이..
1. 스택- 후입선출: 마지막에 넣은 데이터가 가장 먼저 나옴- 활용: 재귀 호출, 괄호 짝 맞추기, DFS 등- 주요 연산# 가장 흔한 방법stack = []stack.append(10)top = stack.pop()2. 큐- 선입선출: 먼저 들어간 데이터가 먼저 나옴- 활용: BFS, 캐시, 작업 예약 처리에 사용- collections.deque: 가장 빠르고 많이 쓰임- queue.Queue: 스레드 안전(멀티스레스 환경용)from collections import dequequeue = deque()queue.append(1)queue.append(2)x = queue.popleft()print(queue) # [2] 3. 트리- 계층적 자료 구조. 노드와 간선으로 구성된 비순환 그래프- 이진트..

1. 그래프 탐색 : 어떤것(Vertex)들이 연속해서 이어질때(Edge), 모두 확인하는 방법 2. BFS vs DFS- BFS: 자식을 먼저 봄- DFS: 자식의 자식을 먼저 봄 3. BFS 아이디어- 시작점에 연결된 vertex 찾기- 찾은 vertex를 queue에 저장 (들어온 순서대로 나감) => 넓게 퍼지며 탐색- queue의 가장 먼저 것을 뽑아서 반복- 최단거리에 BFS 쓰는 이유? BFS는 가까운 노드부터(거리1짜리 다음 거리2짜리,,,) 차례차례 탐색하기 때문에 처음 도착한 순간이 곧 최단거리가 된다.# 큐에 들어오는 순서[1,2,5,3,4,6]1 => 2랑 5 추가 => 1 제거2 => 2랑 열된 3 => 2제거5 => 5랑 연결된 4 => 5제거3 => 4는 이미 있으니까 넘어감 ..
1. sort()- len(list) 가 N일때 : N log N 2. list의 in- 내부적으로 for문을 돈다 => worst의 경우 O(N)# 예시lst = [1, 2, 3, 4, 5]print(3 in lst)found = Falsefor item in lst: if item == 3: found = True breakprint(found) *대안 : set이나 dict의 in- 해시 테이블 기반이라 in 연산이 매우 빠르다 => O(1) 평균 3. remove - 내부적으로 for문을 돈다 => worst의 경우 O(N)def remove(x): for i in range(len(lst)): # O(N) if lst[i] == x: ..
1. 시간제한 : 보통 1초 이내- 코딩테스트에서 보통 1초에 약 1억번(10^8) 연산이 가능하다- N을 보고 O(N^2)을 써도 되는지, O(N)까지 제한되는지 감을 잡아야 한다!!입력크기 N시간제한알고리즘NO(N^2)브루트포스, 백트래킹NO(N^2)이중 반복문, DPNO(N log N)정렬, 이진탐색, 해시, 슬라이딩 윈도우NO(N)누적합, 투포인터, 해시, deque, 그리디 1) 입력크기 N O(N^2) 가능=> 완전탐색 가능! => 브루트포스, 백트래킹- O(2^n) 의 경우 2^20 = 1,048,576으로 약 백만이 되므로, 가능!- n=20일때, 20!는 2.4*10^18로 너무 커서 안됨 2) 입력 N 이중 반복문, DP- 시간복잡도: O(N^2)이면 N*N = 1000*1000 = ..
1. 점화식: 문제를 정의하는 "공식"- 예: 피보나치 수열 => F(n) = F(n-1) + F(n-2), F(1)=1, F(0)=0 1) 재귀 : 자기 자신을 호출, 간단하지만 느릴 수 있음=> 시간복잡도: 지수 시간 O(2^n), 재귀 깊이 초과 가능, (n* 재귀 깊이: Python은 타 언어에 비해 최대 재귀 호출 깊이가 작다 => sys.setrecursionlimit()을 이용해 재귀 호출 깊이 조정 가능하지만, 너무 높게 설정하면 메모리 부족이나 파이썬 인터프리터 자체가 죽을 수 있다.** 왜 제한이 있을까? 파이썬은 함수 호출마다 스택 프레임이라는 메모리 공간을 사용하는데, 재귀 호출이 너무 깊어지면 스택 오버플로우가 발생할 수 있어 제한을 둔 것이다!def fib(n): if n..
- Total
- Today
- Yesterday
- 습관
- 줄넘기
- 루틴
- 실기
- llm
- opic
- 기초
- 오블완
- 아침
- 고득점 Kit
- Ai
- 갓생
- 미라클모닝
- ChatGPT
- C언어
- 스크랩
- IH
- 뉴스
- 30분
- 티스토리챌린지
- SQL
- 빅데이터 분석기사
- Python
- 운동
- 다이어트
- 프로그래머스
- 아침운동
- 영어회화
- 경제
- 오픽
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |