전체 글

Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
개발할때 실제로 많이 안써봐서 생소했던 공용체 공용체 (Union) : 같은 메모리 영역을 여러 개의 변수가 공유한다. 공유하므로 어느 한 멤버의 내용을 변경하면 다른 멤버의 내용도 바뀐다. 공용체를 선언하고 사용하는 방법은 구조체와 비슷하다. 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당한다. union id { int number; // 4 byte char name[14]; // 14 byte }; -> 공용체 id의 경우 크기가 가장 큰 멤버 변수인 name의 크기인 14byte로 메모리가 할당될 것이다.
1. 구조체 : 서로 다른 자료형을 갖는 변수들을 대표 이름으로 묶어 놓는 것 구조체를 선언하는 방법에는 세가지가 있다. // 1 struct student { int id; char name[10]; dounle grade; }; // 마지막에 세미클론 붙여주어야 함 struct student a; // OR student a; // 선언과 동시에 초기화 하기 struct student a = {20210123, "민지", 4.5}; // 2 struct student { int id; char name[10]; dounle grade; } a; //3 typedef struct { int id; char name[10]; dounle grade; } student; student a; typedef의..
명령어 실행전에 python 3.x.x 설치를 해주세용 맥은 기본으로 python 2.x.x가 설치되어있을 테지만 이는 권장하지 않는다네요 1. 가상환경을 생성할 디렉토리로 이동 ex) cd Users/freemjlab 2. python3 -m venv ./(생성하고자 하는 가상환경 이름) python3 -m venv ./mysite python3의 venv 모듈을 통해 가상환경을 생성해줍시다. 짠 !! 이렇게 mysite 디렉토리가 생긴걸 확인할 수 있죵?? 3. 가상 환경 활성화 cd mysite/bin/ 경로로 이동해서 source activate 명령어를 입력합니다 (가상환경 이름) 이 표시되면 활성화 상태입니다! 4. 가상 환경 비활성화 동일한 경로에서 deactivate 명령어를 쳐주세요 이때..
https://sinclairstudio.tistory.com/24 union-find 알고리즘을 알아보자! in Python 1. 그래프 자료구조 union-find 알고리즘은 그래프 자료구조형에서 적용된다. 그래프의 구현방법은 2가지 방식이 존재한다 1) 인접행렬 (Adjacency Matrix) : 2차원 배열을 사용하는 방식 공간복잡도: 노 sinclairstudio.tistory.com Union find 정리 글은 위에 !! 이건 서로소 집합인지 판별하고 합집합 연산을 수행하는 알고리즘이다 크루스칼 알고리즘은 무엇인가 !! 우리가 그래프 알고리즘에서, 최저비용 경로를 계산할 때 사용할 수 있다 다익스트라는 최단거리 ! 크루스칼은 최저비용 ! 1. 신장트리 하나의 그래프가 있을 때, 모든 노드를..
·Algorithm (PS)
1. 그래프 자료구조 union-find 알고리즘은 그래프 자료구조형에서 적용된다. 그래프의 구현방법은 2가지 방식이 존재한다 1) 인접행렬 (Adjacency Matrix) : 2차원 배열을 사용하는 방식 공간복잡도: 노드의 개수가 V, 간선의 개수가 E인 그래프가 있을 때, 인접행렬은 O(V^2) 만큼의 메모리가 필요하다 시간복잡도: 특정한 노드 X에서 다른 노드 Y로 가는 간선의 비용을 O(1)의 시간으로 알아낸다. 2) 인접 리스트 (Adjacency List) : 리스트로 연결하여 사용하는 방식 공간복잡도: 간선 개수만큼인 O(E) 시간복잡도: 특정한 노드 X에서 다른 노드 Y로 가는 간선의 비용을 O(V)의 시간으로 알아낸다. 2. 서로소 집합 서로소 집합은 공통 원소가 없는 두 집합이다. 서..
·Algorithm (PS)
1. 그래프 자료구조 union-find 알고리즘은 그래프 자료구조형에서 적용된다. 그래프의 구현방법은 2가지 방식이 존재한다 1) 인접행렬 (Adjacency Matrix) : 2차원 배열을 사용하는 방식 공간복잡도: 노드의 개수가 V, 간선의 개수가 E인 그래프가 있을 때, 인접행렬은 O(V^2) 만큼의 메모리가 필요하다 시간복잡도: 특정한 노드 X에서 다른 노드 Y로 가는 간선의 비용을 O(1)의 시간으로 알아낸다. 2) 인접 리스트 (Adjacency List) : 리스트로 연결하여 사용하는 방식 공간복잡도: 간선 개수만큼인 O(E) 시간복잡도: 특정한 노드 X에서 다른 노드 Y로 가는 간선의 비용을 O(V)의 시간으로 알아낸다. 2. 서로소 집합 서로소 집합은 공통 원소가 없는 두 집합이다. 서..
·Algorithm (PS)
금광 이동방향은 오른쪽 위, 오른쪽, 오른쪽 아래 3가지 이다. 이를 현재 내 위치인 dp[i][j]에서 보면 왼쪽 위, 왼쪽, 왼쪽아래에서 내 위치로 오는 3 가지 경우가 있다는 의미이다 하지만 이렇게 i == 0 인 경우에는 왼쪽위에서 올 수 없으므로 left_top = 0 이다. 그렇지 않은 경우에는 left_top = dp[i-1][j-1] 이다. 다음의 경우는 3가지 방향 모두 유효하니까 경우를 더 나눌 필요 없이, left = dp[i][j-1] i == (n-1) 인 경우에도 왼쪽아래에서 오는 경우는 불가능 하므로 이 경우 left_bottom = 0이라고 처리해 준다. 그렇지 않은 경우는 left_bottom = dp[i+1][j-1] 이다. 그리고 이 값들 중에서 max 값과 dp[i][..
https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 이 문제는 이진탐색으로 해결할 수 있다 왜냐면 fro??? 이렇게 접두사가 있으면 단어들 리스트에서 fro 가 처음 나온 인덱스랑, 마지막으로 나온 인덱스를 각각 구해서 차이를 구하면 그것이 바로 fro???에 해당하는 단어들 개수가 된다 !! 단어 탐색의 시작은 a 부터 z까지이다. 숫자 뿐만 아니라 이렇게 단어 탐색도 이진탐색을 사용할 수 있다. 여기서 신선하다고 생각 ㅋㅋ 파이썬에는 bisect이라는 이진탐색을 쉽게 수행할 수 있도록 돕는 라이브러리가 있다 그런데 문제제는 접두사말고도 접미사 부분이 ? 인 경우가 있다 ex) tra?? ..
minjiwoo
minji's engineering note