전체 글 349

[이산수학🔗] 관계 (5장)

포스팅에 참고하는 교재 : 4차 산업혁명 시대의 이산수학 개정판 (생능출판) IT Cookbook 이산수학 5.1 관계와 이항정리1) 관계(Relation)- 객체들 간의 연관성을 표현하는 구조로서, 수학이나 공학 분야뿐만 아니라 여러 분야에서도 기본적이고 중요한 개념 - 수학,컴퓨터, 여러 가지 공학 분야에서의 객체들도 이와 같이 여러 가지 관계를 가진다. - 공학과 수학에 있어서의 관계는 집합에서의 원소들 간의 순서(order)를 고려한 것이다. - 원소들 간에 '

수학/이산수학 2023.01.07

[이산수학🔗] 증명법 (4장)

포스팅에 참고하는 교재 : 4차 산업혁명 시대의 이산수학 개정판 (생능출판) 4.1 증명의 방법론1) 증명(proof)- 논리적 법칙을 이용하여 주어진 가정으로부터 결론을 유도해내는 추론의 한 방법으로서, 어떠한 명제나 논증이 적절하고 타당한지를 입증하는 작업 - 공학이나 컴퓨터 관련 학문에 있어서 주어진 문제를 해결하기 위해서는 증명의 단계적 접근 방식이 매우 효과적임. 2) 증명의 단계적 접근 방법①아이디어 스케치 단계문제 해결의 핵심적인 실마리를 찾아내어 기술문제를 해결할 수 있는 방법론을 구상하게 되며 개략적인 아이디어를 스케치함.②구체적인 방법론 제시 단계아이디어를 묶어서 구체적인 블록 다이어그램(block diagram) 등으로 표현프로그래밍의 경우 유사 코드(pseudo code) 단계까지 ..

수학/이산수학 2023.01.04

[이산수학🔗] 집합론과 디지털적인 수의 세계 (3장)

포스팅에 참고하는 교재 : 4차 산업혁명 시대의 이산수학 개정판 (생능출판) 3.1 집합의 표현1) 집합집합은 원소(element)라 불리는 서로 다른 객체들의 모임으로 현대 수학에서 가장 기초가 되는 개념집합의 개념은 수학이나 컴퓨터 분야뿐만 아니라 과학이나 공학 분야 등에서 폭넓게 사용됨.집합의 개념은 19세기 말 독일의 수학자 칸토어(Georg Cantor, 1845~1918)에 의해 처음으로 제안됨.저명한 수학자들은 그의 집합론에 관한 연구의 정당성을 인정하지 않았으나, 오늘날 집합론은 수학적 사고의 중요한 기초임.수학적 객체들은 집합에 관하여 정의될 수 있으므로 수학의 기본 개념임.어떤 객체가 그 집하에 속하는지 아닌지를 분명히 구분할 수 있어야 함.집합을 표시할 때는 알파벳 대문자 A, B, ..

수학/이산수학 2023.01.04

[이산수학🔗] 논리와 명제 (2장)

포스팅에 참고하는 교재 : 4차 산업혁명 시대의 이산수학 개정판 (생능출판)2.0 개요1) 논리 (Logic, Reasoning)- 말이나 글에서 사고나 추리 따위를 이치에 맞게 이끌어 가는 과정이나 원리 - 인간의사고가 논리적인지를 판단하는 것은 사고하는 사람이 주어진 문제를 객관적으로 명확한지의 여부와 사고의 법칙을 체계적으로 추구하여 분석하는지의 여부로 결정됨. 2) 논리의 목적- 특정한 논리를 통한 입증이 옳은가를 측정하는 데 필요한 법칙을 제공 - 논리에 대한 연구와 응용 분야임 - 컴퓨터 관련 학문이나 공학 등 여러 분야에 폭넓게 응용됨. 알고리즘의 설계나 증명, 디지털 논리 회로의 설계, 논리 프로그램 관련 분야, 관계형 데이터베이스 이론, 오토마타와 계산 이론, 인공지능 등에 필요한 이론적..

수학/이산수학 2023.01.02

[이산수학🔗] 이산수학의 개요 (1장)

포스팅에 참고하는 교재 : 4차 산업혁명 시대의 이산수학 개정판 (생능출판)1.1 이산수학이란 무엇인가?1) 이산수학(Discrete Mathematics)- 연속의 개념을 사용하지 않고 이산적인 수학 구조에 대해 공부하는 학문 - 집합, 정수, 관계, 그래프, 형식 언어와 같은개념을 다룬다. 2) 수학- 수학의 영역에는 미적분학, 대수학, 기하학, 위상수학, 복소수론, 해석학 등이 있다. - 공학 분야에는 이산수학, 선형대수, 미적분학, 공업수학 등이 기초와 응용에 있어서 매우 중요한 역할을 담당한다. - 전체 수학 중에서 자료의 성질과 그것을 다루는 방법에 따라 이산수학과 연속수학으로 나뉜다. 3) 이산수학을 학습하는 중요한 이유- 수학적인 논리와 이산수학의기초를 익혀 창의적인 사고의 폭을 넓힘. -..

수학/이산수학 2022.12.31

[백준/C & C++] 8595 히든 넘버

https://www.acmicpc.net/problem/8595 8595번: 히든 넘버 첫째 줄에 단어의 길이 n (1 ≤ n ≤ 5,000,000)이 주어진다. 둘째 줄에는 단어가 주어진다. 단어는 알파벳 대/소문자와 숫자(0-9)로 이루어져 있다. www.acmicpc.net C #include #include char str[5000002]; int main() { long long n, result = 0, num=0; scanf("%lld", &n); scanf("%s", str); for (long long i = 0; i < n; i++) { if (!isdigit(str[i])) { result += num; num = 0; } else num = num * 10 + (str[i] - '..

PS (C, C++) 2022.11.26

[백준/C & C++] 1541 잃어버린 괄호

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net c #include #include int main() { char str[51], op[50]; int num[50], n=0,o=0, num1=0, check = 1; scanf("%s", str); for (int i = 0; str[i] != '\0'; i++) { if (str[i] == '+' || str[i] == '-') { op[o++] = str[i]; num[n++] = ..

PS (C, C++) 2022.11.26

[백준/C & C++] 1296 팀 이름 정하기

https://www.acmicpc.net/problem/1296 1296번: 팀 이름 정하기 연두는 프로그래밍 대회에 나갈 팀 이름을 정하려고 한다. 미신을 믿는 연두는 이환이에게 공식을 하나 받아왔고, 이 공식을 이용해 우승할 확률이 가장 높은 팀 이름을 찾으려고 한다. 이환 www.acmicpc.net 코드 (C) #include #include #include int compare(const void* a, const void* b); int calc(char s[], int l, int o, int v, int e); int main() { int n, name_cnt[4] ={0,}, max=-1; char arr_name[51][21], name[21]; scanf("%s", &name); ..

PS (C, C++) 2022.11.05

[백준/C & C++] 1302 베스트셀러

https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net 코드 (C) #include #include #include int compare(const void* a, const void* b); int main() { int n, count[1001] = {0,}, j = 0, max = -1; scanf("%d", &n); char book[1001][51]; for (int i = 0; i < n; i++) scanf("%s", &book[i..

PS (C, C++) 2022.11.05

[백준/C & C++] 1181 단어 정렬

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net C (코드) #include #include #include char str[20001][51]; int compare(const void* a, const void* b) { if (strlen(a) > strlen(b)) return 1; else if (strlen(a) < strlen(b)) return -1; else return strcmp(a,b); } int main() ..

PS (C, C++) 2022.10.30