무향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치의 합이 최소인 신장 트리를 뜻함N개의 정점으로 이루어진 무향 그래프에서의 트리무향 그래프 이기 때문에 N-1 개의 간선을 가짐이러한 MST 문제를 완탐의 관점에서 보면 너무나 큰 시간의 복잡도를 가지기 때문에
1일 제외한 공통된 약수가 없다.즉, 교집합이 없다!집합들이 존재할 때, 각 집합의 하나의 특정 멤버를 통해 각 집합을 구분한다. 이를 대표자(representative)라 한다.이 대표자가 집합의 식별자 역할을 한다. 서로소 집합을 표현하는 방법은 2가지연결 리스트트
크래프톤 정글에 입소하고 바로 미니프로젝트를 진행하는데, JWT 인증 방식으로 로그인 구현하는 부분이 있었다. 팀에서는 내가 해당 기능 구현을 맡기로 했다. 나에게는 기술적 챌린지었다. 해당 기능을 구현하기 위해서는 JWT 인증 방식이 무엇인지 알아야 했다. jwt 는
어떠한 특정 데이터를 찾기위해 "정렬된" 배열에서 탐색하고, 범위를 절반씩 줄여가면서 찾는 탐색 방법이다300이라는 숫자가 배열이 있는지 없는지 확인해본다고 해보자.위와 같이 배열이 주어질 때, 배열의 시작과 끝 부분을 정한다.그리고 "(시작 + 끝) / 2" 을 계산
jwt에 대하여 TIL을 적고, 이후에 깨달은 사실이 한가지 있다.jwt 관련하여 TIL을 정리하면서 나름 jwt에 대해 잘 알고 있다고 생각했지만, 다시 적어 놓은 TIL을 보니 중요한 것이 한가지 빠졌다는 것을 알게 되었다. JWT 의 구조는 "." 을 기준으로 3
우리는 기본적으로 infix 방법으로 수식들을 쓴다. 1과 3을 더하고 싶으면 1 + 3 이라고 쓴다. 이게 infix 방법이다.하지만 stack을 사용하여 컴퓨터 계산을 하기 위해 postfix가 고안되었다.postfix를 사용하면 괄호 사용이 필요 없어지고, 컴퓨터
힙 정렬을 공부하면서 개인적으로 헷갈렸던 부분이 Heap을 만드는 부분 그리고 Heap이 완성되었을 때 정렬하는 부분이 나눠져 있는 부분이었다. 더불어 heap sort 를 공부할 때에는 많은 용어들이 나와서 조금 더 복잡하게 느껴졌던 것 같다. heap을 만드는데에는
하나의 문제를 단 한번만 풀도록 하는 알고리즘이다.즉 이미 계산된 결과를 별도의 메모리 영역에 저장하여 다시 계산하지 않도록하게 한다. 큰 문제를 작은 문제로 나누고, 작은 문제들의 답을 모아서 큰 문제를 해결동일한 작은 문제를 반복적으로 해결 위와 같은 두가지 조건을
다이나믹프로그래밍 문제를 풀어나가면서 LCS를 마주했다LCS는 https://youtu.be/EAXDUxVYquY 신찬수 교수님께서 잘 설명해주셔서 해당 강의를 듣고 개념을 정리했고, 개념을 정리한 바탕으로 문제를 풀었다.내가 마주한 문제는 백준의 9251번
Transitive closure matrix 는 한국어로 이행적 폐쇄 행렬 이다.풀어서 설명하면 어떠한 그래프가 있을 때,어떠한 정점 i 로 부터 j까지 갈 수 있다면 1을 표시하는 행렬이다. (i,j) 로 행렬을 표시해본다면,(1,1) 은 자기 자신이기 때문에 갈
week05 주가 시작되면서 C언어로 Red Black Tree 를 구현해야한다. 학부 때 배웠던 C언어를 다시 되새기는 마음으로 필요하고 중요하다고 생각 되는 부분을 정리해 두려고 한다. 해당 문법 정리는 씹어먹는 C 언어 를 기반으로 정리 할 것이다. 위와 같이,
gcc 컴파일러 명령어로 매번 프로그램을 실행시킬 수 있지만, 매번 많은 양의 파일들을 직접 터미널에서 gcc 컴파일러 명령어로 칠 수 없을거다.그래서 Makefile을 만들어서 프로그램을 작동 시킬 수 있도록 할 것이다.gcc 컴파일러로 main 실행파일과, main
씹어먹는 C에 대한 내용을 한번 쭉 보고, C언어 연습 겸 스택을 구현해보았다.지금까지는 직접 자료구조를 만들어서 써본 경험이 많지 않았는데, 이번 기회에 자료구조에 대한 기초를 쌓을 수 있는 좋은 기회인 것 같아서 진행했다. 스택을 구현하기 위해서는 여러 방법이 있었
Malloc-lab 프로젝트를 진행하기 위해서 컴퓨터시스템 9장 가상메모리의 처음 부분부터 정독했다. (책 정보(https://www.google.com/search?client=safari&rls=en&sxsrf=APwXEdctWHaBN8GKIU_yeHAtP
해당 글은 현대에 시스템은 "가상메모리" VM(virtual memory) 라고 알려진 메인 메모리의 추상화를 제공한다.
네트워킹 프로그래밍을 하기 위하여 필요한 내용을 정리하고자 한다. 기본적으로 컴퓨터 시스템 책을 기반으로 정리할 예정이다. 네트워크를 위한 책이 아니기 때문에 세부적인 네트워크에 대한 개념보다는 컴퓨터 시스템에서 네트워크가 필요한 부분들이 정리되어있다. Client-
파일 디스크립터 리눅스 또는 유닉스 계열 시스템에서 프로세스가 파일을 다룰때 사용하는 개념이다. 흔히 유닉스 시스템에서의 모든 것을 파일이라고 한다. 일반적인 정규파일부터 우리가 곧 배울 소켓, 그리고 파이프, 블록, 디바이스 등 모든 객체들을 파일로 관리한다. 그래
소켓은 OS 커널에 구현되어있는 프로토콜 요소에 대한 추상화된 인터페이스이며, 장치 파일의 일종이다. 본질은 File 이라는 점이다.보통 파일에 대한 I/O가 진행될 때, process가 주체가 되고, 파일이 대상체가 된다.파일에 대해서 주체는 open, create,
웹 클라이언트와 서버에게, 컨텐츠는 연관된 MIME는 (multipurpose internet mail extensions) 타입을 갖는 바이트 배열이다.! 여기서 MIME는 전자 우편을 위한 인터넷 표준 포맷이다.웹 서버는 두 가지 서로 다른 방법으로 클라이언트에게
소켓에 대한 본질의 이해 소켓은 OS 커널에 구현되어있는 프로토콜 요소에 대한 추상화된 인터페이스이며, 장치 파일의 일종이다. 본질은 File 이라는 점이다. 보통 파일에 대한 I/O가 진행될 때, process가 주체가 되고, 파일이 대상체가 된다. 대상체 파일에
_ /* 해당 자료는 반효경 교수님의 운영체제 강의 자료를 기반으로 정리되었습니다. _! */ 첫 주차 project1을 들어가기 전에 project1을 진행하기 위해 알아야할 개념들을 정리하고 진행하려고 한다. 프로세스 상태 > Process is a progra
1\. 인스턴스 생성 시에 Add additional tags 를 통해 key와 value를 등록한다. Add additional tags 를 누르면 다음과 같이 입력하면 된다. Key : Name, Value : front-dev, Resource types : In
이 포스트는 널널한 개발자 강의를 참조하여 작성한 포스트입니다.운영체제는 user mode와 kernel mode 두가지 모드를 변경해가며 권한을 부여받고 작동하는 걸로 알고 있다.여기서 네트워크를 공부할때 항상 처음에 나오는 osi 7계층에 대한 레이어를 그리면 위와
IP는 intetnet-protocol 의 약자이다. 현재는 IPv4 와 IPv6 를 사용하고 있는데, IPv4는 32bit, IPv6는 128bit 이다.