3-Way HandshakeTCP(Transmission Control Protocol)는 안정적인 통신을 제공하기 위해 데이터를 송수신하는 양쪽이 연결을 설정하고 해제하는 과정이 필요하다. 이 중에서도 연결을 설정하는 과정인 3-way handshake는 TCP 통신의 핵심이다. 이를 통해 송신자와 수신자는 서로를 신뢰할 수 있는 상태로 연결한다. 이 과정은 세 번의 메시지 교환을 통해 이루어지며, 각 단계는 다음과 같다. 1. SYN: 연결 요청먼저 클라이언트가 서버에 연결 요청을 보낸다. 이를 SYN 패킷이라고 부른다. 클라이언트는 이 패킷에 초기 순서 번호(ISN, Initial Sequence Number)를 포함해 보내고, 서버에게 "연결을 시작하자"는 신호를 보낸다. 여기서 중요한 점은 T..
집합순서와 중복이 없는 원소들을 갖는 자료구조. 상호배타적 집합의 특성을 활용하는 분야 상호배타적이다 = 교집합이 없다.코딩테스트에서 상호배타적 집합을 배워야 하는 가장 현실적인 이유는 그래프 알고리즘에서 많이 활용하기 때이다. 그래프 알고리즘에서는 흔히 사이클을 확인하는 일이 많은데, 그 작업에서 상호배타적 집합 개념을 활용한다. 이 외에도 상호배타적 집합 개념을 활용하는 알고리즘은 다양하다. 이미지 분할 : 이미지를 서로 다른 부분으로 나누는 데 사용. 예를 들어 사람과 배경을 겹치지 않게 분할할 때 사용한다.게임 개발 : 예를 들어 플레이어와 적군이 충돌할 때 이 두 캐릭터가 겹치지 않게 하는 데 사용클러스터링 작업 : 각 작업이 서로 겹치지 않게 구성. 작업 간의 의존 관계가 없으면 동시에 ..
검사해주어야 할 부분 :1. 이미 사용한 단어이거나2. 첫 글자가 이전 단어와 일치하지 않음 처음에는 첫 글자인 부분도 검사해야 한다고 생각해서 길어졌으나 고려하지 않아도 되었다 def solution(n, words): used_words = set() prev_word = words[0][0] #이전 단어의 마지막 글자 for i, word in enumerate(words) : if word in used_words or word[0] != prev_word : return [(i%n) +1 , (i//n) +1] used_words.add(word) prev_word = word[-1] return [..
트리 데이터를 탐색하고 저장하기에 유용한 구조를 가지고 있다. 데이터를 어떤 방식으로 저장하고 탐색하는지 알아보자. 트리의 특성을 활용하는 분야 자동 완성 기능 : 트리는 문자열 처리에도 많이 활용된다. 예를 들어 검색 엔진에서 자동 검색어 추천 기능도 트라이 trie라는 독특한 트리 구조를 활용한 것이다. 이를 활용하면 접두사나 패턴 검색을 쉽게 할 수 있다. DB : 데이터베이스를 쉽게 검색, 삽입, 삭제를 할 수 있도록 트리를 활용하여 데이터를 구조화하고 인덱싱한다. 이때 B- 트리나 B+ 트리를 많이 사용한다. 나무를 거꾸로 뒤집어 놓은 모양의 트리 트리를 구성하는 노드 노드중 가장 위에 있는 노드를 루트 노드 라고 한다. 앞의 그림에서는 맨 위에 있는 값 1(A)이 들어 있는 노드가 루트 ..
면접 질문1. 해시 테이블에서 사용하는 해시의 개념은 무엇이며, 이러한 자료 구조가 배열, 리스트와 같은 다른 자료 구조와 비교하여 어떤 장점을 가지나요? 해시 테이블이 실생활에서 어떻게 사용될 수 있는지 예를 들어 설명하세요.해시는 해시 함수를 사용하여 변환한 값을 인덱스로 삼아 키와 값을 저장하여 빠른 데이터 탐색을 제공하는 자료구조 입니다. 배열, 리스트 등은 인덱스를 활용하여 탐색을 빠르게 만들지만, 해시는 키를 활용해 데이터 탐색을 빠르게 합니다.해시는 키와 데이터를 일대일 대응하여 저장하므로, 키를 통해 바로 데이터에 접근할 수 있습니다. 인덱스(숫자)로만 접근하는 배열보다 사람에게 접근성이 좀 더 좋은 자료구조입니다.실생활에서의 예시로는 연락처가 있습니다. 최종으로 얻고자 하는 것은 번호 값..
https://product.kyobobook.co.kr/detail/S000210881884 코딩 테스트 합격자 되기: 파이썬 편 | 박경록 - 교보문고코딩 테스트 합격자 되기: 파이썬 편 | ★ 코딩 테스트 합격자가 되는 가장 확실한 방법! ★ 프로그래머스 제공, 전문가가 모여 엄선한 빈출 100문제로 철저하게 대비하세요신입 사원 코딩 테스트product.kyobobook.co.kr 해시 해시 함수를 사용해서 변환한 값을 인덱스로 삼아 키와 값을 저장하여 빠른 데이터 탐색을 제공하는 함수.보통은 인덱스를 활용하여 탐색을 빠르게 만들지만 해시는 key 를 활용해 데이터 탐색을 빠르게 한다. * 해시는 키와 데이터를 일대일 대응하여 저장하므로, 키를 통해 데이터에 바로 접근할 수 있다. 사람에게는 숫자..