전체 글
-
chapter 2-1(POLYNOMIAL) : 배열, 구조체, 포인터자료구조 2021. 9. 27. 15:26
2차원 배열 동적 할당 #include #include #include int main() { int** x; //이중 포인터 int rows; //행 int cols; //열 scanf("%d", &rows); x = (int**)malloc(rows * sizeof(int*)); //행을 동적할당 scanf("%d", &cols); for (int i = 0; i < rows; i++) { x[i] = (int*)malloc(cols * sizeof(int)); //행마다 열의 크기만큼 동적할당 } for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { scanf("%d", &x[i][j]); } } for (int i = 0; i < r..
-
백준 10866(덱) c언어백준 문제 2021. 9. 16. 01:39
문제 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net c++ STL을 이용하면 매우 쉽게 구할 수 있지만 C언어로 구현하면 꽤 까다로운 문제 였습니다. C언어로 직접 코드를 다 구현해보는게 덱을 이해하는데 큰 도움이 되었습니다. 코드를 보겠습니다. void push_front(int a); void push_back(int b); int empty(); void pop_front(); void pop_back(); int deque[10001]; int cnt = 0; int front = 0;..
-
백준 10845(큐) c언어백준 문제 2021. 9. 15. 20:51
문제 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 자료구조 큐를 구현하는 문제입니다. c언어로 작성했는데 c언어로 하나하나 직접 구현해보면 큐를 이해하는데 도움이 많이 됩니다. 코드를 보겠습니다. int queue[10001]; int cnt = 0; int front = 0; int main() { int n; scanf("%d", &n); while (n--) { char ch[10]; scanf("%s", &ch); if (strcmp(ch, "push")==0) { int a; sca..
-
백준 10828(스택) c언어백준 문제 2021. 9. 15. 01:42
문제 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택을 구현하는 문제 입니다. 보통 스택은 c++ STL 로 편하게 사용가능합니다. 하지만 이번에는 C언어를 사용하여 처음 부터 끝까지 스택을 구현하는 코딩을 해봤습니다. 스택의 원리를 이해하는데 큰 도움이 되었습니다. 코드를 보겠습니다. int stack[10001]; int cnt = 0; int main() { int n; scanf("%d", &n); while (n--) { char ch[10]; scanf("%s", ch); if..
-
#3 Stack, Queue, Deque2021 ICPC 신촌 여름 알고리즘 캠프 (초급) 2021. 9. 14. 23:48
[Stack, Queue, Deque] 특정 위치에서만 원소를 넣고 뺄 수 있는 제한된 '선형 자료구조(일자형태)' c++ STL에 존재 Stack 한 쪽 끝에서만 원소를 넣고 뺄 수 있는 자료구조입니다. LIFO(Last In First Out) 마지막에 들어온게 가장 먼저 나갑니다. push / pop (시간 복잡도 : O(1)) 컨테이너 어댑터(Container Adaptor)의 일종입니다. #include 라이브러리에 존재 합니다. template class stack; 스택에 기본 탬플릿 입니다. deque에서 파생되었다는 것을 알 수 있습니다. push(k) : stack에 k를 추가 pop() : stack에서 제일 마지막에 넣은 원소를 제거 top() : stack에서 제일 마지막에 넣은 ..
-
백준 17608(막대기) c++백준 문제 2021. 9. 14. 23:09
문제 17608번: 막대기 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 www.acmicpc.net 왼쪽부터 길이가 다른 막대를 세워두고. 막대들을 오른쪽에서 봤을때, 보이는 막대의 개수를 세는 문제입니다. 코드를 보겠습니다. int n; cin >> n; stacks; for (int i = 0; i > a; s.push(a); } 먼저 막대의 개수 n을 입력받습니다. 막대 길이를 저장할 공간으로 stack을 선택했는데 막대가 왼쪽부터 오른쪽으로 세우므로 stack을 이용해 맨 아래부분(맨 왼쪽) 부터 맨 윗부분(맨 ..
-
백준 2437(저울) c++백준 문제 2021. 9. 11. 17:23
문제 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 저울추가 주어지면 저울추로 잴 수 없는 가장 작은 수를 출력하면 됩니다. 단순히 문제만 보면 쉬워 보이지만 마땅히 생각이안나서 구글의 힘을 빌렸던 문제 입니다. 코드를 살펴보겠습니다. int n; cin >> n; vectorv(n); for (int i = 0; i > v[i]; } sort(v.begin(), v.end()); 먼저 저울이 개수인 n을 입력바고 n만큼 저울의 무게를 입력받아 벡터 v에 저장합니다. 그다음 오름차순으로 ..