본문 바로가기

프로그래밍21

[스위프트]데이터 타입_컬렉션형이란?(배열,딕션너리,세트) Swift 스위프트 문법: 데이터 타입_컬렉션형(Collection)이란? 배열 (Arrary),딕션너리 (Dictionary), 세트(Set) 스위프트는 튜플 외에도 많은 수의 데이터를 묶어서 저장하고 관리할 수 있는 컬렉션 타입이 있습니다. 컬렉션 타입에는 배열, 딕셔너리, 세트 등이 있습니다. ■ 배열 (Arrary) - 같은 타입의 데이터를 일렬로 나열하여, 순서대로 저장 - 각기 다른 위치에 같은 값이 들어갈 수 있음 - let, var 키워드를 사용해 선언해 줄 수 있음 - Array라는 키워드 사용 - C언어의 배열과 다르게 필요에 따라 버퍼의 크키를 조절해줌 -> 요소의 삽입 및 삭제가 자유로움 - 배열은 인덱스를 통해 각 요소에 접근가능 - 인덱스는 0부터 시작 - 잘못된 인덱스로 접근하.. 2020. 10. 1.

[알고리즘] C언어로 익히는 자료구조 및 알고리즘 총정리 C언어로 익히는 자료구조 및 알고리즘 총정리 공학 관련 전공자라면 피할 수 없는 알고리즘, 졸업하고 나서도 치뤄야 하는 코딩 테스트가 있습니다. 아무리 거대해 보이는 산이라도 기초 체력이 있다면 충분히 정상에 오를 수 있듯이, 알고리즘 문제를 해결할 때도 기본을 이해하는 것이 가장 중요할 것입니다. 저도 최근에 알고리즘 지식을 꼼꼼히 복습해야하는 상황히 생겨서.. 예전에 공부했던 이지스 퍼블리싱의 '자료구조와 함께 배우는 알고리즘 입문(C언어편)'와 오렌지 미디어의 '윤성우의 열혈 자료구조' 책을 가지고 정리하는 시간을 가졌습니다. 이 곳에 정리한 글을 하나씩 연재할 계획입니다. 포스팅하는대로 링크를 활성화하겠습니다. 1. 기본 알고리즘 - 자료구조와 알고리즘 개념 - 시간복잡도, 공간복잡도란? - 빅-.. 2020. 9. 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.

[이산수학]부울행렬의 연산자와 연산의 특징 이산수학 부울행렬의 연산자와 연산의 특징 부울행렬은 모든 원소가 부울값(0과 1)으로만 구성된 행렬입니다. 그래서 일반 행렬과 다른 연산 방식을 이용합니다. 일반행렬 특징보러가기 ■ 부울행렬의 연산자 연산자 중 합과 교차는 두 행렬의 덧셈과 뺄셈처럼 같은 자리에 있는 원소 간에만 이루어집니다. - 합은 논리연산자 중 논리합(∨)연산과 방식이 같습니다. - 곱은 논리연산자 중 논리곱(∧)연산과 방식이 같습니다. - 부울곱(boolean product)은 행렬의 곱셈 방식과 논리합, 논리곱의 연산을 적용하여 수행합니다. ■ 부울행렬의 연산의 특징 1) A∨A=A, A∧A=A 2) A∨B=B∨A, A∧B=B∧A 3) (A∨B)∨C=A∨(B∨C), (A∧B)∧C=A∧(B∧C), A⊙(B⊙C)=(A⊙B)⊙C 4).. 2020. 7. 30.

[이산수학]관계의 성질이란?(반사, 비반사, 대칭, 추이) [이산수학]관계의 성질이란?(반사, 대칭, 추이) 반사 성질에 따라 ■ 반사관계(Reflexive Relation) 모든 a ∈ A에 대해 (a, a) ∈ R인 관계 집합 A에 대한 관계 R이 반사관계가 성립하려면 집합 A의 모든 원소가 자기 자신과 대응하는 순서쌍을 가지고 있어야 합니다. 예를 들어 집합 A = {1, 2, 3} 에 대한 관계 R이 반사관계가 되려면 순서쌍 (1, 1), (2, 2), (3, 3)이 모두 관계 R의 원소로 포함되어 있어야 합니다. ■ 비반사관계 (Irreflexive Relation 모든 a ∈ A에 대해 (a, a) ∉ R인 관계 집합 A에 포함된 모든 원소에 대해 (a. a)가 관계 R에 존재하지 않는 관계입니다. 그러므로 집합 A에 포함되는 원소 중 하나라도 (a,.. 2020. 7. 30.

[이산수학]관계의 유형_이항관계(Binary), n항관계(n-ary), 역관계(Inverse)란?_예제포함 이산수학 이항관계(Binary), n항관계(n-ary), 역관계(Inverse)란? ■ 이항관계(Binary Relation) 집합 A, B가 있을 때, 집합 A에서 집합 B로 가는 관계로, A × B의 부분집합 두 개의 집합 A, B에 속하는 원소들 중 a∈A와 b∈B 간에 관계가 존재할 때, 이러한 관계를 이항관계라고 합니다. 이 이항관계에 포항되는 순서쌍들은 학생 정보 집합의 곱집합의 부분집합입니다. 예제 집합 A = {1, 2}, 집합 B = {a, b, c} 일 때, A에서 B로 가는 가능한 관계 R를 구하라. 풀이 더보기 예제풀이 집합 A와 집합 B 간의 가능한 관계 R은 A × B 집합이다. ∴ A × B = {(1, a),(1, b),(1, c),(2, a),(2, b),(2, c)} ■ .. 2020. 7. 30.

[이산수학]관계의 정의역(Domain), 공변역(Codomain), 치역(Range)이란?_예제포함 [이산수학]관계의 정의역(Domain), 공변역(Codomain), 치역(Range)이란? ■ 정의역(Domain) 집합 A에서 집합 B로 가는 이항관계 R에 속한 순서쌍의 첫 번째 원소가 포함되어 있는 집합, 즉 집합 A dom(R) = {a|a ∈ A} ■ 공변역(Codomain) 집합 A에서 집합 B로 가는 이항관계 R에 속한 순서쌍의 두 번째 원소가 포함되어 있는 집합, 즉 집합 B codom(R) = {b|b ∈ A} ■ 치역(Range) 집합 A에서 집합 B로 가는 관계 R에 속한 순서쌍의 두 번째 원소들을 모아놓은 집합, 공변역의 부분집합 ran(R) = {b|(a, b) ∈ R} ⊆ B 예제 집합 A = {x|1 ≤ x ≤ 5, x는 정수} 일 때, A에서 A로 가는 관계 R은 다음과 같다.. 2020. 7. 30.

[이산수학]집합의 대수법칙이란? 활용예제로 이해하기 이산수학 집합의 대수법칙이란? 활용예제로 이해하기 숫자에 대한 사칙연산(+, -, ×, ÷)에도 일정한 규칙이 있듯이, 집합의 연산에도 정해진 규칙이 있습니다. 이를 집합의 대수법칙이라고 하며, 아래 표와 같이 10가지가 있습니다. 대수법칙을 이용하면 복잡하거나 필요 없는 연산을 간단히 할 수 있습닌다. 다음 두 개의 예제를 통해서 대수법칙이 어떻게 활용될 수 있는지 알아보겠습니다. 예제1 대수법칙을 이용해 흡수법칙 A ∩ (A ∪ B) = A를 증명하시오. 예제2 접합 A, B에 대하여 다음 식을 간략화하시오. 2020. 7. 29.

[이산수학]집합의 종류는?(공집합, 부분집합, 진부분집합) 이산수학 집합의 종류는?(공집합, 부분집합, 진부분집합) ■ 전체집합(Universal Set) : 논의 대상이 되는 원소 전체를 포함하는 집합, U 예로 집합 A가 다음과 같다고 하면, A = {x | x > 13, x ∈ N} 집합 A는 원소 x를 가지는데, x는 13보다 큰 자연수입니다. 즉 집합 A는 자연수 중 13보다 큰 자연수의 집합이며, 집합 A를 포함하는 전체집합은 자연수집합(N)이 됩니다. ■ 공집합(Empty Set) : 하나의 원소도 포함하지 않는 집합, ∅ 또는 { } |∅| = 0 공집합은 어떠한 원소도 포함하지 않기 때문에 공집합의 기수는 항상 0입니다. ■ 부분집합(SubSet) - 집합 A의 모든 원소가 집합 B에 포함되는 경우, |A| ≤ |B| - A와 B가 상등이거나, .. 2020. 7. 29.

[이산수학] 수의 연산_합의 표시 ∑, 곱의 표시 ∏, 나누기ㅣ, 나머지 mod 의 뜻은? 이산수학_수의 연산_합의 표시 ∑, 곱의 표시 ∏, 나누기연산ㅣ, 나머지연산 mod 의 뜻은? 읽는법 ■ 합의 표시: 시그마 일정 규칙으로 나열된 값의 합(i: 합의 색인) 연산풀이를 보면 이해하기 쉽습니다. ■ 곱의 표시: 프로덕트 일정 규칙으로 나열된 값의 곱(i: 곱의 색인) 연산풀이를 보겠습니다. ■ 나누기 연산 정수 n을 d로 나누어 몫 q를 구하는 연산 또는 n = dq를 만족하는 정수 q를 구하는 연산 d|n: d로 n을 나눈다.(d ≠ 0) q: 몫 (quotient) d: n의 약수(divisor) 또는 인수(factor) n: d의 배수 ■ 나머지 연산 정수 n을 d로 나누어 나오는 몫 q와 나머지 r이 있을 때, r을 구하는 연산 n = dp + r을 만족하는 정수 r을 구하는 연산 .. 2020. 7. 29.

[이산수학]역(Converse), 이(Inverse), 대우(Contraposition)이란?_진리표첨부 이산수학_명제와논리_역(Converse), 이(Inverse), 대우(Contraposition)이란? 때로는 주어진 명제만으로 논리를 전개하거나 증명하기가 어려울 때가 있습니다. 이때 역, 이, 대우 중 하나를 이용하면 쉽게 해결할 수 있습니다. 간접증명할 때 사용하기도 합니다. ■ 역, 이, 대우 진리표 빨간네모: 대우명제는 본 명제와 같은 진릿값을 갖습니다. 파란네모: 역명제는 이명제와 같은 진릿값을 갖습니다. ■ 연습문제 명제 "오늘 눈이 오면 나는 치킨을 먹는다."의 역, 이, 대우를 구해봅시다. p: 오늘 눈이 온다. q: 나는 치킨을 먹는다. 역: 내가 치킨을 먹으면 눈이 온다. 이: 오늘 눈이 오지 않으면, 나는 치킨을 먹지 않는다. 대우: 내가 치킨을 먹지 않으면, 오늘 눈이 오지 않는다.. 2020. 7. 29.

[이산수학]논리게이트(Logit Gate)란? 게이트의 종류(AND,OR, NOT,NAND,NOR,XOR) [이산수학]논리게이트(Logit Gate)란? 게이트의 종류(AND,OR, NOT,NAND,NOR,XOR) 디지털 회로를 만들려면 정확한 연산 과정을 표현하는 논리회로(logit circuit)가 필요합니다. 연산 과정을 회로로 표현할 때 논리게이트(Logic Gate)를 이용합니다. 논리 게이트는 하나 이상의 2진 입렵 정보를 받아 하나의 2진 출력 정보를 갖습니다. ■ 논리 회로(logit circuit) -논리 연산을 통해 전기 장치를 제어하는 통로 -컴퓨터 및 기타 전기 장치를 작동하게 만드는 기초 부품 -불 대수를 이용하여 설계 -여러 입력을 해도 출력 1개만 나온다. ■ 게이트(gate) -논리 회로의 기초 구성요소 -각 게이트는 불 연산 하나를 구현 -데이터 저장 기능은 없음 ■ 기본게이트 .. 2020. 7. 29.

[이산수학]교환법칙, 결합법칙, 분배법칙, 흡수법칙이란?_진리표첨부 [이산수학]교환법칙, 결합법칙, 분배법칙, 흡수법칙이란?_진리표첨부 ■교환법칙 ■결합법칙 1 2 ■분배법칙 1 X(Y+Z) = XY + XZ 2 ■흡수법칙 2020. 7. 28.

[이산수학]드 모르간(De-Morgan) 법칙이란? [이산수학]드 모르간(De-Morgan) 법칙이란? 드 모르간의 법칙은 AND와 OR연산을 서로 바꾸고, 각 변수의 보수(부정)을 취합니다. 집합론에도 적용됩니다. ■ 드 모르간의 제 1법칙 A x B의 보수를 취한 것이 A의 보수와 B의 보수를 합한 것과 같습니다. ■ 드 모르간의 제 2법칙 A + B의 보수를 취한 것이 A의 보수와 B의 보수를 곱한 것과 같습니다. 불 대수를 적용해 진리표를 그려보면 쉽게 확인할 수 있습니다. 참(1), 거짓(0)으로 작성한 표입니다. 파란색 네모가 드 모르간의 제 1법칙이고, 빨간색 네모가 드 모르간의 제 2법칙입니다. 드 모드간 법칙이 프로그래밍시 자주 적용되는 부분은 아래와 같습니다. if문 조건을 작성할 때 20세 이상이고 140 이상은 경우의 부정이어야만 놀.. 2020. 7. 28.

[이산수학]합성명제(Compound), 항진명제(Tautology), 모순명제(Contradicition)란? [이산수학]합성명제(Compound), 항진명제(Tautology), 모순명제(Contradicition)란? ■ 합성명제(Compound) 합성명제의 진릿값은 그 함성명제를 구성하고 있는 명제 각각의 진릿값과 그 명제를 결합하는 논리 연산자에 의해 결정됩니다. 따라서 연산의 우선순위를 정하는 것이 중요합니다. 아래 표를 따르면 됩니다. 합성명제는 진릿값에 따라 다음과 같이 세 종류로 나눌 수 있습니다. ■ 항진명제(Tautology) - 논리 연산을 통해 언제나 참인 명제 - 집합론에서 전체 집합과 같은 개념 ■ 모순명제(Contradicition) - 논리 연산을 통해 언제나 거짓인 명제 - 집합론에서 공집합과 같은 개념 ■ 사건명제(Contingency) 항진명제도 모순명제도 아닌 명제 ------.. 2020. 7. 27.

[이산수학]논리연산자란?(부정, 논리곱, 논리합, 배타적 논리합)_진리표로 나타내기 [이산수학]논리연산자란?(부정, 논리곱, 논리합, 배타적 논리합)_진리표로 나타내기 명제는 두 개 이상 결합하여 사용됩니다. 이 때 논리 연산자를 이용하는데 부정, 논리곱, 논리합, 배타적 논리합이 있습니다. 여러 명제를 합친 결과를 비교할 때 유용한 '진리표(Truth Table)'가 있습니다. 명제에서 나올 수 있는 참/거짓 판단의 모든 가능성을 표로 나열하였습니다. 예로 단순 명제 p의 진리표는 다음과 같습니다. ※ 단순 명제: 더 이상 나눌 수 없는 명제 p T(True, 참) F(False, 거짓) 이제 명제의 결합 중에 어떤 것이 있는지 보고, 이해를 위해 진리표와 밴다이어그램도 다루겠습니다. ■ 부정 (Negation) NOT 명제 p를 부정 예) 오늘 새로운 메뉴가 나온다. ->오늘 새로운.. 2020. 7. 27.

[ C ]커스텀 자료형 이해하기6_열거형(Enumerated Type)란? 개념/선언방법 C언어 열거형(Enumerated Type)란? ■ 열거형 개념, 선언방법 열겨형은 변수에 저장가능한 값을 열거하여 정의합니다. 그래서 열거형 변수명을 IndianBoy로 하고 다음과 같이 값을 넣을 수 있습니다. enum indianBoy { One=1, Two=2, Three=3, Four=4, Five=5 }; IndianBoy형 변수가 저장할 수 있는 값으로는 One, Two, Three.. 라는 상수가 있으며, 각각 1, 2, 3...으로 정의하였습니다. 이 열거형 변수를 선언하려면 구조체에 struct 키워드 붙이듯이 enum 키워드를 사용하면 됩니다. enum indianBoy song1; // indianBoy형 변수 song1선언 이제 위의 열거형을 typedef 선언을 추가해서 정의한 .. 2020. 7. 24.

[ C ]커스텀 자료형 이해하기5_공용체(Union Type)이란? 정의/사용하는 이유 C언어 공용체(Union Type)이란? 정의/사용하는 이유 ■ 공용체 정의공용체(Union Type)을 뜻하는 Union은 조합, 통합을 의미합니다. 무엇에 관한 '통합'일까요? 구조체와 공용체의 차이를 보면 쉽게 이해할 수 있습니다. 아래 코드를 확인해보겠습니다. #include typedef struct structBox { int member1; int member2; double member3; } SBox; typedef union unionBox { int member1; int member2; double member3; } UBox; int main(void) { SBox sbox; UBox ubox; printf("%d \n", sizeof(SBox); // 결과 16 printf("%.. 2020. 7. 24.

[2020 안드로이드 스튜디오] Drawable 드로어블 그라데이션 2020 안드로이드 스튜디오 Drawable 드로어블 그라데이션 안드로이드에서는 /app/res/drawable 폴더에 .xml 파일을 만들어 드로어블 객체를 만들 수 있습니다. 기본적인 드로어블 xml 생성 방법은 여기서 확인해주세요. ■ bg_btn.xml ■ bg_btn2.xml ■ bg_btn3.xml ■ actvity_main.xml 그라데이션 색 추출 및 참고 사이트는 여기서 쉽게 찾을 수 있습니다. 드로어블 그라데이션을 이용하여 애니메이션을 만들고 싶다면 다음 글을 읽어주세요. 2020. 4. 22.

[ 안드로이드 프로그래밍 ] 토스트 메시지 위치 변경하기 안드로이드 스튜디오 프로그래밍_토스트 메시지 위치 변경하기_예제포함 예제 ■ xml 파일 - 원하는 위치 값(X, Y)을 입력받기 위해 EditText를 사용합니다. - X, Y위치 값을 받는 칸임을 보여주기 위해 hint의 속성을 'X위치','Y위치'라고 해줍니다. - 띄우기 버튼을 눌렀을 때 토스트 메세지를 띄웁니다. ■ java 파일 package com.example.practicecode; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import androi.. 2020. 4. 8.