본문 바로가기

컴퓨터 공학231

[스위프트]프로그래밍 독학을 위한 문법 총 정리 스위프트(Swift) 프로그래밍 독학을 위한 문법 총정리 아이폰 앱개발을 하고 싶어서 시중에 나와 있는 iOS 프로그래밍 서적을 구매해서, 예제를 그대로 따라했습니다. 하지만 스위프트 언어의 문법에 대한 이해없이 진행하다보니 많이 답답했습니다. 예제 코드없이는 간단한 코드도 끝까지 작성하기 어려웠기 때문입니다. 그래서 시간을 내어 스위프트 문법을 익히기로 결심하고, 공부할 책은 한빛출판사에서 나온 야곰님의 'Swift 프로그래밍' 으로 선정했습니다. 그 책을 통해 공부한 내용을 이 블로글에 하나씩 정리하려고 합니다. 글이 작성되는 대로 제목에 링크를 걸어두겠습니다. ▶ iOS 프로그래밍 예제 모음 ◀ 1. 스위프트 학습에 앞서 1) 스위프트(swift)가 지향하는 프로그래밍 패러다임은? 2) 스위프트 코.. 2020. 9. 29.

스위프트 기본 명명 규칙 및 참고할 만한 공식 문서 스위프트 기본 명명 규칙 및 참고할 만한 공식 문서 모든 프로그래밍 언어가 그렇듯 스위프트 언어 자체에 명시된 명명 규칙은 없습니다. 코딩 환경, 프레임워크나 협업 그룹에 따라서 달라질 수 있습니다. 애플은 스위프트 관련 문서 및 예제를 모두 API 디자인 가이드라인, 코코아를 위한 코딩 가이드라인에 따라 작성했습니다. 명명 규칙같은 코딩 습관은 나중에 교정하기 여려우니 처음부터 제대로된 코딩 규칙 및 명명 규칙을 익히는 것이 좋습니다. 참고할 만한 스위프트 관련 문서 ■ API 디자인 가이드라인 [공식: 영어] swift.org/documentation/api-design-guidelines/ Swift.org Swift is a general-purpose programming language bui.. 2020. 9. 22.

스위프트 코드를 macOS말고 다른 실행 환경에서 테스트하기 스위프트 코드를 macOS말고 다른 실행 환경에서 테스트하기 안녕하세요. 하헤호후입니다. 오늘은 스위프트 코드를 macOS말고 다른 환경에서 작성하고, 테스트할 수 있는 곳을 알아보겠습니다. 스위프트 문법을 익히고 연습하려면 애플에서 공식적으로 지원하는 Xcode의 플레이그라운드와 REPL이 가장 최적화되어 있습니다. 하지만 스위프트는 오픈 소스로 전환된 이후 macOS 외의 다른 환경, 즉 리눅스 및 윈도우 등에서도 사용할 수 있기 때문에, 필요에 따라 실행 환경을 달리하여 활용할 수 있습니다. 어떤 서비스가 있는지 보겠습니다. 1. 온라인 스위프트 플레이그라운드 웹에서 이용할 수 있습니다. 온라인에서 작성한 코드를 스위프트 파일 또는 플레이그라운드 파일로 내려받을 수도 있습니다. www.tutoria.. 2020. 9. 22.

[스위프트]핀치 제스처로 두 손가락으로 이미지 확대/축소하기 iOS프로그래밍(스위프트) 핀치 제스처로 두 손가락으로 이미지 확대/축소하는 예제 핀치 제스처(Pinch Gesture)는 두 손가락으로 화면을 확대/축소할 때 사용하는 이벤트입니다. 화면 축소 확대/축소 기능이 들어간 모든 앱에서 사용할 수 있습니다. 이 글에서는 이미지를 확대/축소하는 앱을 만들어보겠습니다. 먼저 Xcode를 실행하고, 새 프로젝트를 생성합니다. ▶ 새 프로젝트 만드는 방법 [스위프트] Xcode 새 프로젝트 만들기 2020 Xcode 새 프로젝트 만들기 STEP 1 Xcode 실행하고 Create a new Xcode project를 클릭하여 새 프로젝트 만들기 STEP 2 템플릿 선택하기 [Single View App] 를 선택하고 Next를 눌러주세요. STEP 3.. bite-.. 2020. 9. 1.

[이산수학]최소신장 트리란?/ 최소신장 트리 구하는 알고리즘 [이산수학]최소신장 트리란?/ 최소신장 트리 구하는 알고리즘(프림,크루스칼) ■ 신장 트리(Spanning Tree)란? 그래프 G의 꼭짓점을 모두 노드로 포함하는 트리 T ■ 최소신장 트리(Minimal Spanning Tree)란? 그래프 G의 꼭짓점을 모두 노드로 포함하면서 비용을 최소로 하는 트리 T 최소신장 트리를 구하기 위해서는 노드와 노드를 연결하는 변에 가중치가 부여된 그래프가 있어야 합니다. 또한 비용이 최소인 트리로 만들기 위한 알고리즘도 필요합니다. ■ 최소신장 트리 구하는 알고리즘 프림 알고리즘(Prim Algorithm) 그래프 G의 변 중 비용이 가장 낮은 변들을 가지로 연결시켜서 트리로 만드는 알고리즘 ▶프림 알고리즘 설명 더 보러가기 크루스칼 알고리즘(Kruskal Algor.. 2020. 8. 30.

[스위프트]핀치 제스처로 두 손가락으로 텍스트 확대/축소하기 iOS프로그래밍(스위프트) 핀치 제스처로 두 손가락으로 텍스트 확대/축소하는 예제 핀치 제스처(Pinch Gesture)는 두 손가락으로 화면을 확대/축소할 때 사용하는 이벤트입니다. 화면 축소 확대/축소 기능이 들어간 모든 앱에서 사용할 수 있습니다. 이 글에서는 텍스트를 확대/축소하는 앱을 만들어보겠습니다. 먼저 Xcode를 실행하고, 새 프로젝트를 생성합니다. ▶ 새 프로젝트 만드는 방법 [스위프트] Xcode 새 프로젝트 만들기 2020 Xcode 새 프로젝트 만들기 STEP 1 Xcode 실행하고 Create a new Xcode project를 클릭하여 새 프로젝트 만들기 STEP 2 템플릿 선택하기 [Single View App] 를 선택하고 Next를 눌러주세요. STEP 3.. bite-.. 2020. 8. 30.

[스위프트]화면 터치해서 그리는 스케치 앱 만들기 iOS 프로그래밍(스위프트) 예제_화면 터치해서 그리는 스케치 앱 만들기 이번에는 아이폰 화면을 터치하여 그림을 그리는 스케치 앱을 만들어볼 것입니다. 그림을 그리기 위해 이미지뷰(Image View) 객체를 추가하고, 화면 삭제를 위한 버튼도 아래에 배치합니다. 완성한 후 시뮬레이터를 돌리면 마우스 커서로 그릴 수 있고, 실물 폰에서 앱을 실행시키면 직접 터치할 수 있습니다. 그럼 프로젝트를 만들고, 스토리보드에서 화면 구성부터 해보겠습니다. ▶ 새 프로젝트 만드는 방법 [스위프트] Xcode 새 프로젝트 만들기 2020 Xcode 새 프로젝트 만들기 STEP 1 Xcode 실행하고 Create a new Xcode project를 클릭하여 새 프로젝트 만들기 STEP 2 템플릿 선택하기 [Single.. 2020. 8. 29.

[이산수학]최소신장 트리 구하는 크루스칼 알고리즘(Kruskal Algorithm) 이란? [이산수학]최소신장 트리 구하는 크루스칼 알고리즘(Kruskal Algorithm) 이란? 크루스칼 알고리즘은 프림 알고리즘과 마찬가지로 그래프 G의 변들 중 비용이 가장 낮은 변들을 가지로 연결시켜 트리를 만드는 알고리즘입니다. 프림 알고리즘은 이미 연결되 노드에 근접하는 가지 중 최소 비용을 갖는 가지를 선택했지만, 크루스칼 알고리즘은 연결 여부와 상관없이 가장 비용이 낮은 가지를 연결해갑니다. ▶프림 알고리즘에 대해 더 알고 싶다면 ■ 크루스칼 알고리즘(Kruskal Algorithm) 그래프 G의 변 중 비용이 가장 낮은 변들로 트리를 구성하는 알고리즘 (1) 가중치가 가장 작은 변을 차례로 선택하여 노드들을 연결 (2) 가중치가 같은 변은 임의로 선택 (4) 선택된 변에 대해 회로가 형성되는 경.. 2020. 8. 29.

[이산수학]최소신장 트리 구하는 프림 알고리즘(Prim Algorithm)이란? [이산수학]최소신장 트리 구하는 프림 알고리즘(Prim Algorithm)이란?_예제포함 최소신장 트리(Minimal Spanning Tree)란 '그래프 G의 꼭짓점을 모두 노드로 포함하면서 비용을 최소로 하는 트리 T'입니다. 그래서 최소신장 트리를 구하기 위해서는 다음 두 가지 요소가 있어야 합니다. 1. 노드와 노드를 연결하는 변에 가중치에 부여된 그래프 2. 비용이 최소인 트리로 만들기 위한 알고리즘 2번의 알고리즘에는 프림 알고리즘(Prim Algorithm)과 크루스칼 알고리즘(Kruskal Algorithm)이 있습니다. 이 글에서는 프림 알고리즘에 대해 알아보겠습니다. ■ 프림 알고리즘(Prim Algorithm) 그래프 G의 변 중 비용이 가장 낮은 변들로 트리를 구성하는 알고리즘 (1.. 2020. 8. 28.

[스위프트]코어그래픽스로 화면에 그림(원, 사각형, 삼각형, 호) 그리기/콘텍스트(context)개념 이해하기 스위프트(Swift) iOS프로그래밍 코어그래픽스로 화면에 원, 사각형, 삼각형, 호 그리기 모양객체에 색 채우는 방법/콘텍스트(context)개념 이해하기 iOS에서는 코어 그래픽스라는 그래픽 라이브러리를 사용하여 뷰에 그림을 그릴 수 있습니다. 코어 그래픽스는 선, 사각형, 원 같은 도형을 그리거나 도형에 색을 채우는 등 다양한 기능들에 활용할 수 있습니다. 이번에는 코어 그래픽스의 다양한 라이브러리를 사용하여 간단한 도형을 그리고 도형 내부를 특정 색으로 채우는 방법을 알아보겠습니다. 완성된 결과는 아래와 같습니다. 원, 사각형, 삼각형, 호를 이용하여 귀여준 표정을 그릴 것입니다. 먼저 스토리보드를 구성해봅시다. (전체 코드는 맨 아래에 있습니다.) ▶새 프로젝트 만들기 ■ 화면 구성하기 STEP.. 2020. 8. 28.

[스위프트]탭 카운트(TapCounter)하는 법_간단한 예제로 따라하기 Xcode_iOS 프로그래밍 스위트프로 탭 카운트(TapCounter)하기 탭(Tap)은 화면을 톡톡 두드리는 행위를 말합니다. 아이폰(iOS) 애플리케이션 개발할 때 어떻게 탭을 셀 수 있는지 코드로 보겠습니다. 먼저 Xcode를 열고, 새 프로젝트를 생성합니다. ▶새 프로젝트를 생성하는 방법 보러가기 ■ 화면 구성하기 STEP1 라이브러리에서 스택뷰(Vertical Stack View)를 드래그하여 스토리보드에 드래그합니다. STEP2 라이브러리에서 스택뷰(Vertical Stack View)를 드래그하여 스토리보드에 드래그합니다. 4번에서 스택뷰 안에 Labeldl 들어가지 않으면 드래그로 변경해줍니다. STEP3 Label을 더블클릭해서 안의 텍스트를 변경해줍니다. 위 Label은 Tab Coun.. 2020. 8. 27.

[이산수학]이진 탐색 트리란?_예제포함 [이산수학]이진 탐색 트리의 정의(예제포함) 탐색(Search): 어떤 원소를 찾아가는 과정 키(key): 탐색에서 기준이 되는 값 ■ 이진탐색트리(Binary Search Tree)란 노드가 가지는 데이터의 크기에 따라 노드의 위치를 탐색할 수 있는 트리 1. 트리에서 탐색되는 모든 원소는 서로 다른 유일키를 갖는다. 2. 왼쪽 서브 트리에 있는 원소의 키들은 그 루트의 키보다 작다. 3. 오른쪽 서브 트리에 있는 원소의 키들은 그 루트의 키보다 크다. 루트 15를 기준으로 왼쪽 서브 트리는 15보다 작은 값들로 구성되고, 오른쪽 서브 트리는 15보다 큰 값들을 구성됩니다. 즉 15는 탐색되는 모든 원소들의 유일키가 됩니다. 왼쪽 서브 트리를 보면 12를 기준으로 12보다 작은 값은 왼쪽 버스 트리를 .. 2020. 8. 27.

[이산수학]이진트리 순회표기법의 종류(전위표기, 중위표기, 후위표기)_예제포함 [이산수학]이진트리 순회표기법의 종류(전위표기, 중위표기, 후위표기)_예제포함 ■ 순회표기 이진 트리는 수식을 표현하는 방법에도 사용할 수 있습니다. 예를 들어 (a + b) × (c - d)를 표현하면 아래와 같은 트리가 됩니다. 이와 같이 식을 이진 트리로 표현할 수 있는 것처럼 식을 순회방식으로 표기할 수 있습니다. ■ 전위표기 위 이진트리를 전위표기로 나타내면 × + ab - cd 로 연산자가 피연사자보다 앞에 옵니다. ■ 중위표기 위 이진트리를 전위표기로 나타내면 a + b × c - d 로 연산자가 피연사자들의 중간에 옵니다. ■ 후위표기 위 이진트리를 전위표기로 나타내면 ab + cd - × 로 연산자가 피연사자들의 뒤에 옵니다. 예제 식 (x / y) + (w - z) × v를 전위표기, .. 2020. 8. 26.

[이산수학]이진트리의 순회(전위순회, 중위순회, 후위순회) [이산수학]이진트리의 순회(전위순회, 중위순회, 후위순회) 모든 노드의 데이터를 처리할 수 있도록 한 번씩 방문하는 방법을 순회(Traversal)라고 합니다. 서브 트리에서 루트 노드(P)를 언제 방문하느냐에 따라 전위순회, 중위순회, 후위순회가 있습니다. 먼저 노드를 방문하는 순서를 확인하겠습니다. ■ 노드를 방문하는 순서 1 항상 루트에서 시작합니다. 즉, 트리의 레벨 0에서 시작합니다. 2 서브 트리에 대한 순회의 순서는 항상 왼쪽에서 오른쪽으로 이루어집니다. 3 데이터를 읽기 전에 왼쪽, 혹은 오른쪽 노드가 있는지 확인하는 작업을 합니다. 그럼 각 순회는 어떤 방식으로 이루어지는지 보겠습니다. ■ 전위순회(Preorder Traversal) 루트 노드 - 왼쪽 노드 - 오른쪽 노드 순으로 방문하.. 2020. 8. 26.

[이산수학]배열로 구현한 이진 트리 [이산수학]배열로 구현한 이진 트리 ■ 배열로 구현한 완전 이진 트리 - 각 노드 변호를 인덱스로 하여 1차원 배열로 구현할 수 있습니다. - 노드 번호는 1부터 시작하므로 배열에서 인덱스가 0인 자리는 비워두고, 인덱스가 1인 자리부터 노드 값을 저장하면 됩니다. ■ 배열로 구현한 편향 이진 트리 - 노드 인덱스는 완전 이진 트리처럼 왼쪽 자식 노드 인덱스는 2n, 오른쪽 자식 노드 인덱스는 2n+1입니다. - 편향 이진 트리를 구성하는 각 노드의 인덱스에 해당하는 배열의 영역에 노드 값이 들어갑니다. - 그래서 메모리 공간의 낭비가 발생합니다. ■ 이진 트리에서 각 노드의 인덱스 규칙 - 레벨 1의 노드 인덱스 2번과 3번은 부모 노드인 1번의 2배 또는 2배에 1를 더한 것입니다. - 즉, 노드 인.. 2020. 8. 26.

[Xcode] PDF 한 장으로 정리한 유용한 단축키 모음 코딩 시 유용한 Xcode 단축키(Shortcut) 모음(한 장 PDF첨부) Xcode 프로그램을 사용하여 프로그래밍할 때 단축키를 활용한다면 코드 작성 시간을 단축할 수 있습니다. 그래서 Xcode 단축키 모음을 PDF 한 장으로 만들어보았습니다. 기존의 영문으로된 원본을 한국어로 해석했습니다. 전체 영역에서 사용할 수 있는(일반), 코드 및 파일 네비게이션에서 쓰이는 단축키들이 있습니다. 그 밖의 코드 수정 시, 디버깅 시, 라이브러리에서 사용하는 키도 있습니다. 아래 단축키 외에 20여개 더 PDF에 들어있습니다. 일반 빌드 & 실행 코드 네비게이션 환경설정 ⌘, 빌드 ⌘B 줄 맨 끝으로 가기 ⌘→ 문서 ⇧⌘0 분석 ⇧⌘B 줄 맨 앞으로 가기 ⌘← 콘솔 창 열기 ⇧⌘C 실행 ⌘R 첫번째 줄로 이동 .. 2020. 8. 25.

[이산수학]연결리스트로 구현한 이진 트리 [이산수학]연결리스트로 구현한 이진 트리 배열로 편향 이진 트리를 구현하면 메모리의 낭비가 발생합니다. 이런 문제는 연결리스트로 해결할 수 있습니다. ■ 연결리스트로 구현한 이진 트리 연결리스트는 부모 노드와 자식 노드를 주소로 연결하기 때문에 연속된 메모리 영역이 아니더라도 부모와 자식 노드를 연결할 수 있습니다. 연결리스트는 왼쪽 노드와 오른쪽 노드를 가리키는 포인터 영역과 데이터를 저장하는 데이터 영역으로 구성됩니다. 하지만 잎 노드의 경우 자식 노드를 갖기 않기 때문에 자식 노드 주소가 null로 채워집니다. ■ 연결리스트로 구현된 완전 이진 트리 / 편향 이진 트리 연결리스트는 부모 노드와 자식 노드 간에 주소(포인터)로 연결되어 있기 때문에 편향 이진 트리라 하더라도 메모리를 낭비하지 않고 구.. 2020. 8. 25.

[이산수학]이진 트리의 정의 및 종류(완전, 포화, 편향) [이산수학]이진 트리의 정의 및 종류(완전, 포화, 편향) 부모 노드가 몇 개의 자식 노드를 가졌느냐에 따라 트리의 종류가 달라집니다. n개의 노드일 때, 즉 트리의 최대 차수가 n인 경우를 n항 트리(n-ary tree)라고 합니다. 이진 트리(또는 이항 트리)는 최대 차수가 2인 트리입니다. 즉, 최대로 가질 수 있는 자식 노드가 두개인 트리입니다. ■ 이진 트리(Binary Tree) 트리 T를 구성하는 부모 노드가 갖는 자식 노드의 수가 최대 2개인 트리 자식 노드가 하나도 없거나, 하나 혹은 두 개를 갖는 트리 모두 이진 트리에 속합니다. 최대 차수가 2로 제한되기 때문에 이진 트리는 왼쪽 서브 트리와 오른쪽 서브 트리를 구분합니다. 이진 트리는 완전 이진 트리와 편향 이진 트리로 나눌 수 있습.. 2020. 8. 25.

[이산수학]노드와 변에 대한 정리/트리에 대한 정리_예제포함 [이산수학]노드와 변에 대한 정리/트리에 대한 정리 ■ 노드와 변에 대한 정리 트리에서 노드의 개수를 v, 변의 개수를 e라고 하면, e = v - 1 입니다. 예제 (1) 노드의 수가 16개인 트리에 존재하는 변의 수는? (2) 변의 수가 24개인 트리에 존재하는 노드의 수는? 풀이 더보기 예제풀이 (1) 15개 (2) 25개 ■ 트리에 대한 정리 n개의 꼭짓점을 갖는 연결 그래프T에 대해 다음은 동치입니다. 1. T는 트리다 2. T의 변의 수는 n - 1개다. 3. T에서 변 하나를 제거하면 연결 그래프가 아니다. 4. T에 속하는 서로 다른 꼭짓점 w, v에 대해, w에서 v로 가는 유일한 경로가 존재한다. 수학으로 이해하는 디지털 논리 이산수학 359p 참고 --------------------.. 2020. 8. 25.

[이산수학]트리(Tree)의 정의와 관련 용어 정리(노드, 차수, 레벨, 숲 등)_예제포함 [이산수학]트리(Tree)의 정의와 관련 용어 정리(노드, 차수, 레벨, 숲 등) ■ 트리(Tree) - 트리 T는 비순환, 연결 그래프 - 루트(Root)라고 불리는 노드가 반드시 하나 있어야 함 - 트리 T를 구성하는 꼭짓점 v, w 간에, v에서 w로 가는 단순 경로가 있음 ▶ 선형과 비선형, 순환과 비순환의 뜻은? ■ 서브 트리(Sub Tree) - T를 구성하는 꼭짓점 v를 루트로 하는 트리 예제 다음 중 트리인 것은? 풀이 더보기 예제풀이 (1) A가 루트며 그래프를 구성하는 꼭짓점 A부터 G 사이에는 단순 경로만 존재하므로 트리다. (2) A-B-D 간에 순환 경로가 존재하고, A-B-D와 C-E가 연결되지 있지 않으므로 비연결 그래프다. 그러므로 트리가 아니다. 아래 트리(Tree)로 관련.. 2020. 8. 24.

[이산수학]선형과 비선형, 순환과 비순환의 차이는? [이산수학] 선형과 비선형, 순환과 비순환의 차이/개념/예 ■ 선형과 비선형(Linear vs. Nonlinear) - 선형: 직선의 형태를 가지며, 1차 방정식을 선형방정식이라고 합니다. 1차 방정식 y = ax + b는 출력되는 y에 대응되는 입력 x가 반드시 하나 존재합니다. 따라서 값을 예측가능하면 '선형적'이라고 합니다. - 비선형: 선형의 반대말입니다. 곡선의 형태를 가지며 결과를 예측할 수 없는 경우를 '비선형적'이라고 합니다. ■ 순환과 비순환(Cycle vs. Acyclic) - 순환: 시작점과 끝점이 같은 경로 - 비순환: 시작점과 끝점이 다른 경로 수학으로 이해하는 디지털 논리 이산수학 353p 참고 ----------------------------------- 이산수학 총정리 목록.. 2020. 8. 24.

[Xcode] Xcode의 화면 구성 살펴보기(내비게이터/편집기/인스펙터/디버그영역) [Xcode] Xcode의 화면 구성 살펴보기(내비게이터/편집기/인스펙터/디버그영역) 본격적인 코드 작성에 앞서 Xcode 툴에 익숙해지기 위해 Xcode 화면 구성을 보도록 하겠습니다. Xcode 화면 구성은 다음과 같이 여러 개의 영역으로 나누어져 있습니다. ■ 네이게이터 영역(Navigator Area) - 테스트, 프로젝트 파일, 브레이크 포인트 등의 정보를 나타내 주는 영역 - 각 항목을 한 번 클릭하면 '편집기 영역'에 나타납니다. ■ 편집기 영역(Editor Area) - 소스를 직접 입력할 수 있는 곳 - 스토리보드를 이용해 화면을 디자인할 수 있는 영역 ■ 인스펙터 영역(Inspector Area) - 스토리보드를 편집할 때 버튼, 컨트롤러 같은 객체의 속성을 편집할 수 있는 영역 ■ 디.. 2020. 8. 22.

[이산수학]부분순서관계란? (비교가능/비교불가능/완전순서) [이산수학]부분순서관계란? (비교가능/비교불가능/완전순서)_예제포함 관계는 순서쌍으로 표현합니다. 순서쌍은 원소 나열에 의미가 있음을 말합니다. (a, b)와 (b, a) 같이 a와 b의 나열에 따라 서로 다른 원소가 됩니다. 관계 중에는 그 성질이 무엇이냐에 따라 모든 원소가 부분적인 순서관계를 갖는 경우가 있습니다. ■ 부분순서관계(Partial Order) 부분순서관계가 되려면 반사관계, 반대칭관계, 추이관계가 성립해야 합니다. 이때 부분순서관계는 꼭 반대칭관계가 성립해야 합니다. 반대칭관계는 (a, b) ∈ R이고, a ≠ b 일 때는 (b, a) ∉ R 이어야 성립합니다. 그래서 원소 a와 원소 b사이의 순서관계가 확실할 수밖에 없습니다. ■ 비교가능(Comparable)/비교불가능(Noncom.. 2020. 8. 21.

[이산수학] 추이폐포와 연결관계 ■ 추이폐포(Transitive Closure) 집합 A에 대해, 관계 R를 포함하면서 추이관계를 갖는 관계 S 추이페포를 구하는 과정에서 새로운 순서쌍이 생기기 때문에 앞서 다룬 반사폐포나 대칭폐포를 구하는 것보다 복잡합니다. 예를 들어 집합 A = {1, 2, 4} 집합 A에 대한 관계 R = {(1,1),(1,4),(2,1),(4,2)} 위의 두 요건을 이용해 추이페포 S를 구해보겠습니다. (2,1)이 관계 R에 존재하고, (1, 4) 또한 존재합니다. 추이폐포가 되기 위해서는 (2,1)의 앞의 원소 2와 (1,4)의 뒤의 원소인 4으로 만들어진 순서쌍 (2, 4)이 추가되어야 합니다. 이제는 (2, 4)에 대해서도 추이폐포가 되도록 순서쌍을 추가해야 합니다. 즉 관계 R에 (2,4)도 있고, (4.. 2020. 8. 21.

[이산수학]꼭짓점, 변, 면과의 관계는? (오일러 공식에 대한 정리, v-e+s=2) 오일러 공식에 대한 정리 연결된 평면 그래프 G에서 꼭짓점 수를 v, 변의 수를 e, 면의 수를 s라고 할 때 다음 오일러 공식이 성립합니다. v - e + s = 2 증명 위의 공식을 증명하기 위해서는 변이 하나인 그래프와 둘 이상인 그래프를 나누어 고려해야 한다. (1) 변이 하나인 그래프는 다음과 같이 두 종류이다. 1) v = 1, e = 1. s = 2 로 v - e + s = 1 - 1 + 2 = 2 ∴ 오일러 공식이 성립한다. 2) v = 2, e = 1. s = 1 로 v - e + s = 2 - 1 + 1 = 2 ∴ 오일러 공식이 성립한다. (2) 둘 이상의 변으로 구성된 그래프는 수학적 귀납법을 이용해 증명한다. e = 1일 때, v - e + s = 2 - 1 + 1 = 2므로 오일러.. 2020. 8. 13.