일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1546
- X보다 작은 수
- 1%d
- 자바스크립트
- if문 사용해보기
- 가상 화폐
- 시험 성적
- 블록 체인
- 이더리움
- Mist
- 알고리즘 문제풀이
- Dapp
- 비트 코인
- 백준
- 1065
- 1110
- 그대로 출력하기
- for문 사용해보기
- 평균은 넘겠지
- Baekjoon
- 별 찍기 - 11
- 2448
- 단계별로 풀어보기
- 더하기 사이클
- 10817
- 함수 사용하기
- 솔리디티
- 10871
- Remix
- 세 수
- Today
- Total
목록알고리즘 문제풀이 (44)
블링블링 범블링
큐(Queue) queue는 대표적인 선형 자료구조 중에 하나다. queue는 FIFO(First In First Out)성질을 가지고 있다. 먼저 들어온 데이터가 가장 먼저 나간다는 의미다.대표적으로 비유하는 것이 대기순서표이다. 먼저 온사람이 먼저 접수를 하고, 나중에 온 사람은 가장 뒤에서 기다려야 하는 것처럼 큐도 그렇다.그림과 같이 새로운 데이터는 꼬리에 들어오고 기존의 데이터는 머리 쪽부터 차곡차곡 쌓인다. 그리고 데이터를 뺄 때는 가장 먼저 들어왔던 데이터가 나가는 구조다. 나는 주로 queue는 bfs탐색을 할 때 주로 사용한다. 직접 구현보다는 STL을 사용하기 간편하기 때문에 사용하지만 직접 구현해서 쓰는 것도 해봐야할 것 같다. 배열을 이용하지 않고, 리스트를 이용해 구현을 했다. #..
스택(Stack) 스택은 선형 자료구조에서 대표적인 것 중에 하나다. 스택을 떠올리면 가장 먼저 생각하는 것은 이러한 구조의 그림이다. 바구니에 책을 차례대로 쌓고, 이 것을 꺼내려면 가장 나중에 쌓은 책을 꺼내야 한다. 많은 책에서 이 것을 LIFO(Last In First Out)라고 한다. 가장 나중에 들어 간 것이 가장 먼저 나온다는 의미다. 스택은 재귀 함수를 할 때도 많이 언급되는 자료구조이기도 하다. 스택을 구현할 때 배열을 이용해 하는 법과 리스트를 이용하는 방법이 있다. 나는 리스트로 구현을 했다. STL을 사용하지 못할 때는 이렇게 구현해서 써야하고, 개념을 이해하기 위해서는 직접 구현해보는 것이 좋은 것 같다. 나도 복습할 겸 다시 구현을 해봤다. #include #include us..
원형 연결리스트(Circular Linked List) 원형 연결리스트는 이 전에 해왔던 단일 연결리스트나 이중 연결리스트에서 끝을 처음과 연결된 리스트를 말한다. 그림 상으로는 원으로 그렸지만 실제로는 선형 연결리스트의 마지막 노드의 next 포인터를 처음으로 연결 시켜주면 된다. 원형리스트(단일 연결리스트로 표현)는 모든 포인터가 다음 노드로 연결되어있다. 이러한 cycle 구조자료의 구현이 필요할 때는 원형리스트가 유용하다. 다시 마지막에서 첫번째로 이동하지 않아도 다음 노드가 첫번째 노드를 가리키기 때문이다. [데이터 삽입]?123456789101112131415161718192021222324//삽입 void addNode(int data) { //가장 마지막에 노드를 추가한다. Node *ne..
단일 연결리스트(Singly Linked List) 단일 연결리스트란 단일 방향(포인터)을 가진 리스트를 말한다. 포인터를 이용해 다음 순서의 노드를 가리켜주고, 이를 통해 머리부터 끝까지 탐색을 돌 수 있다. ?12345678910class Node {public: int data; Node *next; Node() {} Node(int data) : data(data) { //노드를 생성할 때 매개변수 값을 data변수에 값을 대입시켜준다. this->next = NULL; // next포인터를 초기화 시켜준다. } ~Node() {}}; 단일 연결리스트의 노드의 구성은 data와 다음 노드를 가리키는 next 포인터 두 가지가 있다. 예제는 단순히 데이터를 int형 변수 하나를 사용했지만 구조체를 ..
리스트는 자주 사용되는 자료구조 중에 하나다. 노드를 생성하고, 이를 포인터를 이용해 연결 시켜준다고 해서 연결리스트(Linked List)라고 한다. 배열만큼이나 자주 사용되는 자료구조다. 배열과 링크드 리스트는 순서대로 데이터를 나열한다는 공통점이 있지만 차이점과 각각의 장점이 있기 때문에 필요에 따라 사용한다. [배열] 배열은 인덱스 번호를 가지고 있다. 때문에 원하는 데이터의 위치를 알고 있다면 빠르게 참조할 수 있다. 결과적으로 N번 째 요소의 참조를 자주 해야 하는 경우에는 배열을 사용한다. 배열의 인덱스를 통해 빠르게 원하는 데이터를 사용할 수 있다는 장점을 지닌다. [리스트] 리스트는 중간에 데이터를 삽입해야 하거나, 삭제해야하는 경우에 용이하다.보이는 것처럼 새로운 노드를 생성하고 포인터..
Step : Title : " A-B " 시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB32815233732115073.232%문제A-B를 계산하시오.입력첫째 줄에 A와 B가 주어진다. (0< A,B < 10)출력첫째 줄에 A-B를 출력한다.예제 입력 복사3 2예제 출력 복사1 " 사칙연산 도전하기 두번쨰 " 기본적인 문제 2. 두 수를 입력 받아서 두 수의 차 출력하기 12345678910111213#define _CRT_SECURE_NO_WARNINGS#include #include int A, B; int main(){ scanf("%d %d", &A, &B); printf("%d", A - B); return 0;}cs
Step : Title : " A+B " 문제두 수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력첫째 줄에 A와 B가 주어진다. (0 < A,B < 10)출력첫째 줄에 A+B를 출력한다.예제 입력 복사1 2 예제 출력 복사3 " 사칙연산 도전하기 " 기본 적인 문제. 두 수를 입력 받아서 두 수를 더한 뒤 출력하는 기초 문제 123456789101112#define _CRT_SECURE_NO_WARNINGS#include #include int A, B; int main(){ scanf("%d %d", &A, &B); printf("%d", A + B); return 0;}cs