2주차 - 그래프이론, DFS, BFS 그래프 이론의 기초 정점 노드 그래프를 형성하는 기본 단위 분할할 수 없는 객체이자, “점”으로 표현되는 위치, 사람, 물건 등이 될 수 있음 간선 정엄을 잇는 선 관계, 경로 indegree, outdegree ‘u’ → ‘v’로 가는 경로가 4개이면: u의 outdegree가 4, v의 indegree는 2 정점과 간선의 집합을 ‘그래프’라고 한다. 가중치 Tree(트리) 트리는 자식노드와 부모노드로 이루어진 계층적인 구조를 가지며 무방향그래프의 일종이자 사이클이 없는 자료구조를 의미한다. 방향그래프: directed graph 무방향그래프: undirected graph 트리는 무방향그래프를 중심으로 설명 directed edge → arc라고 부르기도 함 트..
전체 글
- 2000.08.01 - KU CSE 20초반 개념 관련 내용에서는 따로 정리하기 보다, 기존 정리된 글들이 더욱 좋다고 판단하여 참고하기 좋은 사이트만 첨부하였다. 복잡도(Complexity): 시간 복잡도와 공간 복잡도, 그리고 빅오(Big-O) 표기법 복잡도(Complexity): 시간 복잡도와 공간 복잡도, 그리고 빅오(Big-O) 표기법 시간 복잡도와 공간 복잡도, 그리고 빅오 표기법 velog.io 누적합 누적 합 누적 합 배열의 시작 인덱스위의 설명에서 배열 $A$의 시작 인덱스는 $1$로 사용했습니다. 그 이유는 $S[l-1]$ 때문입니다. 시작 인덱스가 $1$이면 $l$의 최솟값은 $1$이고, 여기서 $l-1$은 $0$입니다. 만약, 시작 book.acmicpc.net 누적합 배열이 정적이라는 가정하에서만 사용하도록 주의하자. ..
About Closure 오늘은 클로저에 대해 알아보도록 하자. 미리보기 클로저 형태 왜 클로저를 사용하지? 여러가지 문법 아래는 나중에 다룰 예정 클로저의 메모리구조 @escaping, @autoclosure 키워드 캡처현상, 캡처리스트 사용 예시 우선 클로저란 무엇일까? 클로저 (Closures) | Swift 클로저 (Closures) | Swift 명명된 함수 생성없이 실행되는 코드 그룹입니다. 클로저 (Closures) 는 코드에서 주변에 전달과 사용할 수 있는 자체 포함된 기능 블럭입니다. Swift의 클로저는 다른 프로그래밍 언어에서 클로저, bbiguduk.gitbook.io 해당 글에 따르면 클로저는 ‘코드에서 주변에 전달과 사용할 수 있는 자체 포함된 기능 블럭’이다. 본격적으로 들어가..

About Class, Struct 미리보기 구조체 클래스 구조체와 클래스의 차이 무엇을 선택해야 하는가? 우선 내용을 정리하기에 앞서, 아래와 같은 사실을 꼭 알아두자 하나의 프로세스 내 존재하는 메모리 모델은 아래와 같다. 코드, 데이터, 힙, 스택은 꼭 기억하자. 또한, 클래스와 구조체는 ‘객체 지향 프로그래밍’ 패러다임을 연 녀석들이다. 흔히 사용하는 비유로 클래스, 구조체는 ‘붕어빵 틀’을 만들어 낸 것과 같다. → 인스턴스를 찍어냈다. 라는 말로도 사용 💡 인스턴스 → 실제로 메모리에 할당되어 구체적 실체를 갖춘 것 (스위프트에서는 클래스의 instance를 특별히 객체(object)라고 부름) 클래스 [클래스의 특징은 다음과 같다] reference type 데이터 영역에 (클래스)틀이 저장..

[아래 표, 그림은 강의자료를 첨부한 내용입니다(About Process) 참고] Limited Direct Execution Summary of Last Class Time Sharing Context switch Scheduling policy Process State Running, Ready, Blocked Limited Direct Execution 운영체제가 프로그램이 실행될 때 계속해서 간섭해야 함 이 친구가 잘 돌고 있는가? 금지된 거를 실행하고 있는 거 아니야? 자원을 독점적으로 쓰는 거 아니야? 와 같은 간섭을 계속함 Direct Execution 뒷짐지고 그냥 방치하는 현상 따라서, 위의 제약을 걸기 위해 Limited Direct Execution이 등장 Direct Executio..

About Delegate Pattern [오늘은 처음으로 3번 이상 강의를 수강하게 한 ‘델리게이트 패턴’에 대해서 정리하고자 한다.] 보통 앱 View를 구상할 때, 한 화면 내에서 모든 거를 처리한다기 보단, 다른 화면과의 상호 작용을 기반으로 한 화면의 데이터를 수정하거나 여러 화면 간의 통신을 설정하는 것은 일반적이다. 그렇다면 디자인 패턴 중 하나인 ‘Delegate Pattern’은 뭘까? Delegate? delegate을 해석하자면 “대리자” 라는 뜻이다. 이는 entity가 다른 entity에게 task나 책임을 할당할 필요가 있을 때 사용된다. entity? → https://modelinspring.tistory.com/90 해당 블로그 글을 참고하자. 예시를 보면서 한번 알아보도록..