
인터넷 프로토콜 스택(TCP/IP 레이어)인터넷 통신은 우편이나 택배 서비스 등으로 비유를 합니다.발신자(클라이언트)가 있고, 택배물건(패킷)을 통해 수신자(서버)에 전달하고, 물류센터들(노드)을 거쳐 수신자에게 전달되는 점에서 그렇습니다.그렇지만 일반 택배와 다른 점이 있다면 정해진 상자(패킷 크기)에 나누어서 보내야하고, 나누어서 보내기 때문에 조립순서가 필요합니다. 따라서 순서를 확인하기 위한 어떤 무엇인가가 있어야 할 것이고, 수신자 주소와 발신자 주소도 제대로 적혀있어야 합니다.인터넷 통신에서는 이렇게 순서를 확인하고, 실제로 발신자가 있는지 확인하는 프로토콜(언어)이 TCP(Transmission Control Protocol, 전송 제어 프로토콜)이고, 수신자와 발신자가 적혀있는 것이 IP(..

permission denied맥북을 사용하다보면 심심치 않게 파일을 실행할 때 permission denied를 만날 수 있습니다.이럴 때마다 chmod 755 명령어를 사용하여 파일에 대해 권한을 주어 해결하곤 하는데요.얼마전 시험에서도 공부했던 부분이라 정리 차원에서 더 공부하여 포스팅합니다.chmod 명령어란?chmod 명령어는 "change mode"의 약자로, 파일이나 디렉토리의 권한을 변경하는 리눅스(유닉스) 명령어입니다.(읽을때마다 쵸몬도로 읽게되어 썸네일에 추가해 봤습니다.) 엄밀히 말하면 유닉스 명령어이지만 리눅스도 유닉스 계열이고, 맥북의 macOS도 유닉스 계열이다보니 사용할 수 있는 것이지만 편의를 위해 리눅스 명령어라고 칭하겠습니다.755는 뭐지?리눅스의 파일 권한은 소유자/그룹..

리트코드 - 57. Insert Interval출처 - https://leetcode.com/problems/insert-interval/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명다음과 같은 비중첩(intervals)이 주어집니다. 이 intervals 배열은 intervals[i] = [starti, endi] 형식으로 주어지며, 이는 i번째 interval의 시작과 끝을 나타냅니다. 또한 이 intervals 배열은 시작 값 starti 기준으로 오름차순으로 정렬되어 있습니다. 또한 [start, end] 형식의 새로운 interval newInterval이 주어지며, 이는 새로운 interval의 시작과 끝을 나타냅니다.new..

리트코드 - 56. Merge Intervals출처 - https://leetcode.com/problems/merge-intervals/description/?envType=study-plan-v2&envId=top-interview-150 문제 설명주어진 배열은 internals=[starti, endi]로 표현됩니다. 겹치는 모든 간격들을 병합하고, 입력된 모든 간격을 커버하는 겹치지 않는 간격들의 배열을 반환하세요. 풀이코드class Solution { public int[][] merge(int[][] intervals) { int length = intervals.length; if (length a[0])); List result = new Arr..

리트코드 - 289. Game of Life출처 - https://leetcode.com/problems/game-of-life/ 문제 설명위키피디아 기사에 따르면 "The Game of Life", 또는 간단히 "Life"로 불리는 이 셀룰러 오토마톤은 1970년에 영국의 수학자 존 호튼 콘웨이가 고안했습니다.게임판은 m x n 크기의 격자로 구성되어 있으며, 각 셀은 초기 상태인 살아있음(1로 표현됨)과 죽음(0으로 표현됨) 중 하나를 가집니다. 각 셀은 다음과 같은 네 가지 규칙을 사용하여 그것의 8개의 이웃 셀(수평, 수직, 대각선)과 상호작용합니다(위키피디아 기사에서 발췌):살아있는 셀이 두 개 미만의 살아있는 이웃을 가지고 있다면, 과소인구로 인해 죽습니다.살아있는 셀이 두 개 또는 세 개의 ..

리트코드 - 128. Longest Consecutive Sequence출처 - https://leetcode.com/problems/longest-consecutive-sequence/ 문제 설명정렬되지 않은 정수 배열이 주어지면 가장 긴 연속 요소 시퀀스의 길이를 반환합니다.O(n) 시간에 실행되는 알고리즘을 작성해야 합니다. 풀이코드class Solution { public int longestConsecutive(int[] n) { Set set = new HashSet(); for (int i = 0; i 코드설명시간복잡도 O(n) 시간 내에 연속하는 가장 긴 수를 찾아야 한다.단순히 하나씩 반복문을 돌려서 찾기엔 O(n * n)번이 걸릴 것이다. 그럼 Arrays..