일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ermodel
- statement equivalence
- relationaldatabaseschema
- CNF
- Sentiment Analysis
- 항진명제
- 십진법
- Contradiction
- full adder
- dnf
- Digital Logic Circuits
- Gate
- 이진법 십진법 변환
- 모순명제
- Circuit
- Tautology
- 모두의네트워크
- Decimal notation
- truth table
- 명제
- cnn
- GPT-1
- 명제 동치
- half adder
- Logical statement
- 써킷
- 진리표
- 모두의네트워크정리
- 모두의네트워크요약
- Binary notation
- Today
- Total
목록Algorithm in C (20)
NLP Learner in Switzerland
* 유투버 동빈나님의 영상을 참조하여 정리한 것입니다. 이전에 배웠듯이 ampersand(&)는 해당 변수값이 들어있는 곳의 주소(address)이다. 포인터pointer를 나타내는 연산자는 asterisk(*)로 표기한다. 포인터를 간단하게 이해해보자. int x = 70; int *y = &x; 라고 선언했다고 가정한다. 그러면 x는 70이라는 값이고, y는 x의 주소를 가진다(e.g. 00AA00BB). 즉, y=&x이다. 그러면 *y는 뭘까? *y = 70이 된다. 즉, *y=x이다. y=&x, *y=x 아하....??? well... ㅈㄴ헷갈린다... ㅡㅡ 뭐 일단은 *y=x니까, x나 *y값을 바꾸게 되면 해당 변수값이 바뀐다. 그 예시를 보자. #include int main(){ int i..
* 유투버 동빈나님의 영상을 참조하여 정리한 것입니다. 구조체struct는 파이썬의 class와 비슷하다. 기본 개념은 여러개의 데이터를 묶어서 새로운 자료형을 만드는 것이다. 배열array은 같은 자료형data type을 묶는 거였다면, 구조체struct는 서로 다른 자료형data type을 묶으려고 사용한다는 차이가 있다. 뭔 소리지? 구조체의 예시를 보자 struct number { int img; float real; double xoxo; } number는 구조체의 이름이며, 구조체 내부의 변수들의 data type이 서로 다른 것을 볼 수 있다(int, float, double...) 구조체를 왜 쓰는걸까? 현실적인 예시를 들어보면 다음과 같다. 집(A지점)에서 학교(B지점)을 간다고 가정했을..
* 유투버 동빈나님의 영상을 참조하여 정리한 것입니다. 퀵정렬(Quick sort)는 의미 그대로 속도가 빠른 정렬 알고리즘이며 평균 시간복잡도는 를 자랑한다. 아래에서 더 자세히 설명할 것이다. 퀵정렬은 또한, 분할정복(Divide&Conquer) 알고리즘의 하나이다. 그 이유는, 퀵정렬을 하는 방식에 있다. 퀵정렬을 하는 방식은 특정한 값을 기준으로 이큰 숫자와 작은 숫자를 나누어서 각각 정렬을 한 후 합친다. 여기서의 기준이 되는 값을 피봇(Pivot)이라고 부른다. 보통 피봇은 맨 앞의 값으로 정한다. 퀵정렬 예시 글로만 쓰면 뭔 소린지 쓰는 나조차도 모를게 분명하므로 예시를 보면서 구체적으로 수행해보자. e.g. 3 7 8 1 5 9 6 10 2 4 --- 10개의 숫자를 퀵정렬로 정렬하려고 한..
* 유투버 동빈나님의 영상을 참조하여 정리한 것입니다. 힙정렬(Heap sort)은 기본적으로 힙트리 구조(Heap tree structure)를 이용하는 정렬방법이므로 주어진 데이터가 힙트리 구조를 가지도록 만들어야 한다. 이진트리(Binary tree)는 주어진 데이터를 각 노드(Node)에 담았을 때, 모든 노드의 자식노드가 2개 이하인 트리구조이다. 최상단 노드를 루트노드(Root node)라고 부르며, 최하단 노드를 리프노드(Leaf node)라고 부른다. 그 중 완전이진트리(Complete Binary tree)는 데이터가 루트 노트부터 시작해서 그 아래 왼쪽 자식노드, 오른쪽 자식노드... 순서로 들어가는 구조이다. 즉, 이진트리의 노드가 중간에 비지않고 빽빽히 가득차 있는 구조를 말한다. ..
* 문제번호를 클릭하면 해당 문제로 이동합니다(새창) * VS code를 사용하고 있어서 scanf_s는 모두 scanf로 바꿔 제출했습니다. 10818 최소, 최대 #include int main() { int N,i,n; scanf("%d", &N); int min = 1000000, max = -1000000; for (i = 0; i = max) { max = n; } if (n = max) { max = array[i]; index = i; } } printf("%d\n%d", max,index+1); } - for문으로 배열의 원소를 차례대로 입력받을 수 있다. 2577 숫자의 갯수 #include int main() { int ..
* 문제번호를 클릭하면 해당 문제로 이동합니다(새창) 10952 A+B-5 #include int main() { int A, B; while (1) { scanf("%d %d", &A, &B); if (A == 0 && B == 0) { break; } printf("%d\n", A + B); } return 0; } - 특정 조건을 만족할 때까지 계속 입력받으려면 while (1) + if (조건) break 조합으로 사용하면 된다. 10951 A+B-4 *** 잘못된 풀이 #include int main() { int A, B; while (scanf("%d %d", &A, &B)==1) { printf("%d\n", A + B); } return 0; } - 계속 입력 받는다길래 while문에다가..
* 문제번호를 클릭하면 해당 문제로 이동합니다(새창) 2739 구구단 #include int main() { int N, i; scanf("%d", &N); for (i = 1; i