본문 바로가기

전체 글243

[네트워크📶] UDP pseudo-header(수도헤더) 1부 : UDP란/ UDP 특징 https://programming119.tistory.com/148 [네트워크📶/] UDP 란 / UDP 장단점 / UDP 특징 UDP(User Datagram Protocol) UDP는 전송 계층(transport layer)에서 사용하는 프로토콜의 일종입니다. 주로 TCP 와 비교가 많이 되는데, TCP과 완벽주의자 같은 느낌이라면, UDP는 대충 일처리만 , 하지만 매우.. programming119.tistory.com UDP CheckSum 앞서 1부에서 말했듯이, UDP에서 Checksum은 선택적 사용입니다. checksum 을 쓰지 않는다면, checksum 부분은 전부 0으로 체웁니다. * checksum 실제 계산값이 0이라면 ??? 2의 보수 계산법에.. 2020. 5. 30.
[네트워크📶/] UDP 란 / UDP 장단점 / UDP 특징 UDP(User Datagram Protocol) UDP는 전송 계층(transport layer)에서 사용하는 프로토콜의 일종입니다. 주로 TCP 와 비교가 많이 되는데, TCP과 완벽주의자 같은 느낌이라면, UDP는 대충 일처리만 , 하지만 매우 신속하게 처리하는 타입 느낌입니다. 당연히 각기 장단점이 있겠죠? UDP가 하지 않는 것 = TCP는 하는 것. 연결 셋업 / 종료 (Connection setup/teardown) 수신 완료했다고 알리기 (Acknoledgement) 재전송 (Retransmission) Fragmentation 혼잡 제어 (Congestion Control) 순서대로 보내기 (In-order delivery) PMTU discovery UDP는 이 많은 것들을 하지 않습니.. 2020. 5. 30.
[네트워크📶/TCP] Silly Window Syndrome 과 Nagle 알고리즘 Silly Window Syndrome 이란 TCP 에서 전송할때 작은 segment도 하나하나씩 보낸다고 가정해봅시다. TCP는 작은 segment 하나 전송을 위해 3-Way Handshake 과정을 거쳐야 하고, 1 바이트 전송을 위해 40바이트의 헤더가 들어갑니다. 그 비효율성은 마치 큰 트럭에 조그만한 지우개 하나를 태워 보내는 것과 같습니다. 전체 트럭의 수용량(MSS)를 전혀 사용하지 못하죠. 이를 해결하기 위해 silly window syndrome avidance 가 이루어집니다. 즉, receiver가 받을 수 있는 수용량이 매우 적다면, 조금조금씩 받을 수 밖에 없겠죠? 그럼 이러한 비효율적인 일이 벌어집니다. 따라서, reciever 의 수용량이 아주 적을 때, 차라리 sender에.. 2020. 5. 28.
[알고리즘🔑] Iterative deepening Search와 Iterative lengthening Search 들어가기 앞서 BFS/DFS 에 대해 숙지하셔야 합니다. Blind Search 의 기본 원리를 알고 계셔야 합니다. Iterative Deepening Search란 iterative : 반복적인 즉, 한국 말로 '번역하자면 반복적인 깊이 탐색' 정도가 되겠네요. DFS 와, BFS 의 단점들을 보완하기 위해 고안된 search 방법입니다! 그러면 어떤 점들을 보완시켰는지 알기 전에, 먼저 DFS와 BFS의 특징들을 간단하게 알아볼까요? DFS의 특징 장점 : BFS 에 비해 메모리 소요가 적다. (BFS는 frontier 큐에 하위 노드들 전부 넣어야함) 목표해가 깊은 단계에 있을 경우, BFS 보다 훨씬 빠르다. 단점 : DFS 는 탐색트리에서 깊이가 아주 큰, 하지만 해가 해당 깊이에 없는 경우를.. 2020. 5. 24.
[정보이론] 허프만 코드의 optimal 판단 / Huffman code optimal 들어가기 앞서 https://programming119.tistory.com/75 [알고리즘] 허프만 코드와 그리디 알고리즘 / Huffman code and greedy algorithm 문자열의 코드화 우리가 인터넷 상에서 쓰는 한글, abcd 알파벳. 컴퓨터는 우리처럼 글자 자체로 보지 않고, 결국 2진수 0과 1의 모음으로 이해를 한다! a는 01 로 약속, b는 10 으로 약속하면 ab라는 � programming119.tistory.com 허프만 코드에 대해 모르신다면, 참고해주세요! 허프만 코드의 Optimal 세 조건 코드화된 distribution이 있을 때, 다음과 같은 세 조건을 모두 만족시키면 Optimal 입니다. 1. 코드길이는 확률값과 반비례 한다. (코드 길이가 길수록, 확률.. 2020. 5. 20.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 핸드폰 번호 가리기 해답) def solution(phone_number): return "*" * (len(phone_number)-4) + phone_number[-4:] 풀이) *의 개수 : 휴대폰 번호 길이수 - 4 phone_number[-4:] 를 통해, 마지막 4자리 번호를 string 으로 뽑아낸다. * 이 문제 및 로고의 저작권은 Programmers에 있습니다. 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 2020. 5. 17.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 가장 긴 팰린드롬 해답) def solution(string): end = len(string)-1 def find(i, i2 = -1): res = 2 # 가운데가 2개로 볼때 if i2 == -1: # 가운데 1개 기준으로볼때 i2 = i res = 1 j = 1 # 커지는 수 while i2 + j = 0: if string[i2+j] == string[i-j]: res += 2 else: return res j += 1 return res answer = 1 for i in range(1, len(string)-1): if string[i] == string[i+1]: # 2개짜리 검사 answer = max(answer, find(i), find(i, i+1)) else: answer = max(answer, f.. 2020. 5. 16.
[프로그래머스💯] 코딩테스트 연습 > 동적 계획법 > 정수 삼각형 / Python 문제풀이 해답) def solution(triangle): answer = 0 length = len(triangle) # length+1 한 이유 : 맨밑줄 index 넘어가도 오류안나게 maxPath = [[0 for _ in range(length+1)] for _ in range(length+1)] maxPath[0][0] = triangle[0][0] for i in range(length-1): for j in range(i+1): # 왼쪽 밑 보고 갱신 if maxPath[i][j] + triangle[i+1][j] > maxPath[i+1][j]: maxPath[i+1][j] = maxPath[i][j] + triangle[i+1][j] # 오른쪽 밑 보고 갱신 if maxPath[i][j] + t.. 2020. 5. 10.