gcc : GNU C 컴파일러o app : 컴파일 결과 파일 이름을 app으로 지정app.c : 소스 파일 이름컴파일 후 app이라는 실행 파일이 생긴 걸 확인할 수 있어야 합니다.gcc 컴파일러 코드(여러 파일로 나눠서 작업한 경우)gcc 컴파일러 코드(단일 파일인
함수에 인자를 넘길 때는 아래 순서대로 레지스터를 사용해:리턴값은 기본적으로 %rax에 저장예: return 42; → %rax = 42리턴값이 128비트 이상이면 다른 레지스터 추가 사용 or 메모리 통한 복잡한 처리 필요전달할 값의 크기(자료형)에 따라 자동으로 결
트라이란? - 문자열을 효율적으로 처리하기 위한 트리 자료구조. > 단어의 끝에 도달했는지를 확인하는것이 중요 > 단어 제거 해당위치까지 찾아간다음 단어의 끝을 의미하는 것을 제거**정점 자체를 제거하면 안됨- 이전에 삽입한 정점들은 계속 메모리에 남아있어 메모리 측면에서 비효율적임 - 그래서 삭제가 계속 발생하는 환경에서 트라이는 적합하지 않음 ![]...
리스트 slicer가 값1, 값2, 값3 형태일 때,각 값을 순서대로 변수 a, b, c에 할당합니다.slicer의 길이가 반드시 3이어야 해요.만약 \[1, 2]처럼 2개만 있으면 에러 발생:반대로 4개 이상이면?갯수가 다를 수 있다면 슬라이싱이나 별표(\*) 연산자
다익스트라 알고리즘( 방향, 무방향 그래프에서 ) - 하나의 시작점으로부터 다른 모든 정점까지의 최단 거리를 구하는 알고리즘- 기능은 플로이드가 더 좋음. - 플로이드는 음수인 간선이 있는건 상관이 없고 음수인 사이클이 있을때 문제발생.- 다익스트라는 음수의 가중치
\- 방향, 무방향 둘다 가능- 간선값이 음수여도 동작. but 음수인 사이클이 있으면 문제 발생.- 자기 자신으로 가는거리 = 0 , 간선 1개로 바로 건너갈 수 있는 곳 = 간선의 값접근법- 현재 테이블에서 1번을 거쳐가는 최단 거리만을 먼저 갱신- 다른 모든 경우
위상정렬 이란 올바른 위상정렬- ABCDEF- ACEDBF- BADCEF- BADFCE올바르지 않은 위상정렬- BFACED는 F가 D보다 먼저 나오기 때문에 잘못된 위상정렬이다. 위상정렬은 사이클이 존재 X 업로드중..
처음에 1을 큐에 넣고 방문했다는 표시 남김큐가 비어있지 않으니 큐의 front인 1번 정점을 꺼낸다1번 정점과 이웃한 2, 3, 4번 정점은 방문하지 않은 정점이라 큐에 순서대로 넣고 방문처리.큐가 비어있지 않으니 순서대로 큐의 front정점을 꺼냄2번은 주변에 방문
sys.stdin.readline()은 줄 단위로 입력을 받습니다.입력이 끝나면(EOF: End Of File) int(...)에서 오류(Exception)가 발생합니다.그때 except 블록으로 빠져서 while 루프를 멈추게 됩니다.입력 개수가 정해져 있지 않은 경
객체(Object)를 생성하기 위한 틀(Template)변수(속성)와 함수(메서드)를 묶어서 하나의 구조로 정의init 함수는 클래스를 선언하는순간 실행이 된다.객체가 생성될 때 실행됨\_\_init\_\_() 안의 self.name은 객체의 속성, name은 전달된
count(): 특정 원소의 개수만 셀 때 간편하게 사용Counter: 모든 원소의 빈도수를 한 번에 분석할 때 유리문자열, 리스트, 튜플 등 반복 가능한 자료형 모두 사용 가능
그래프에서 사이클이 생기는지 판단하는 방법특히 MST 문제(최소 신장 트리) 에서 필수 개념간선을 하나씩 추가할 때, 사이클을 유발하는지 실시간 판별해야 함두 정점이 같은 집합에 속해 있다면 → 사이클 발생새로운 간선을 추가할 때마다 find()로 대표 노드 비교현재
DFS는 그래프의 가장 깊은 정점까지 탐색한 뒤, 더 이상 갈 곳이 없으면 되돌아오는(Backtracking) 방식스택(Stack) 또는 재귀(Recursive Function) 로 구현보통 경로 기반의 완전탐색, 백트래킹, 사이클 탐지 등에 사용시작 노드를 방문하고
너비 우선 탐색: 가까운 정점부터 넓게 탐색Queue(큐) 자료구조를 사용해 구현시작점에서 인접한 정점을 먼저 탐색 후, 더 깊은 곳으로 진행시작 노드를 큐에 넣고 방문 처리큐에서 노드를 꺼냄인접 노드를 모두 큐에 추가큐가 빌 때까지 반복O(N + M) (N: 노드
\*정점(Vertex)과 간선(Edge)\*\*으로 구성된 자료구조정점 간의 연결 관계(네트워크)를 표현방향, 가중치, 연결성에 따라 다양한 그래프 형태 존재메모리: O(N²)모든 간선 확인 빠름간선이 적을 땐 비효율적메모리: O(N + M)연결된 노드만 탐색 가능일반
정렬된 배열에서 탐색 구간을 절반씩 줄이며 값을 찾는 알고리즘\*O(log N)\*\*의 빠른 탐색 성능조건을 만족하는 최소/최댓값을 찾는 문제에도 자주 사용됨입력 배열은 반드시 오름차순 정렬되어 있어야 함값 존재 여부 확인파라메트릭 서치lower_bound, uppe
Key를 해시 함수에 넣어 고유한 인덱스를 생성하고, 그 인덱스에 데이터를 저장하는 구조Key-Value 쌍으로 데이터를 저장빠른 탐색, 삽입, 삭제 가능파이썬에서는 dict, C에서는 배열 + 해시 함수 직접 구현평균 시간 복잡도는 O(1)Key 값은 변경 불가능한