전체 글

· PS 연습
더러워서 화났던 정렬 문제 👩🏻‍💻 문제링크 [백준 2108] 더하기 사이클 (cpp) https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net ✍️ 아이디어 1. 문제 이해 산술평균에서 주의할점 -0이 안나오게 해야함 최빈값 구하기 쉽지 않을것이다 2. 최빈값 구하기 값을 입력 받으면서 그 값에 해당하는 인덱스가 +1 되어 나중에 모든 숫자의 갯수를 찾음 ✍️소스코드 불통과 #include #include #include #include using namespace..
· C++
▶ 자주 쓰는 STL string algorithm vector set map stack queue priority-queue ▶ string https://hwan-shell.tistory.com/120 C++ string 사용법 및 기능정리(동작방식) C++에는 string이란 클래스가 있습니다. 이걸 사용하려면 string 헤더파일을 선언해 줘야 하며 다양한 기능을 제공합니다. 그렇다면 string이란 녀석이 왜 생겨났을까?? 기존 C언어에서 문자열 처리를 hwan-shell.tistory.com ▶ algorithm [가장 많이 쓰는 함수] find reverse sort erase+unique 일반적인 경우(default=오름차순) 사용자 정의 함수인 경우(일반데이터) a 보통 실..
트리는 계층적 관계를 표현하는 자료구조 [트리] 단순히 무엇을 저장하고 꺼내는 것이 아닌 무언가를 표현하는 자료구조 노드 - 트리의 구성요소 간선 - 노드를 연결하는 연결선 루트 노드 - 트리 구조에서 최상위 노드 단말 노드 - 아래에 더 이상 노드가 없는 말단 노드 부모 노드가 같은 노드끼리는 형제 노드 루트 노드를 중심으로 둘로 나누어지는 서브 트리 레벨 : 각 층 별로 숫자를 매긴 것 (루트 노드가 레벨 0) 높이 : 트리의 최고 레벨=높이 포화 이진트리 : 레벨이 꽉 찬 이진트리 완전 이진트리 : 노드가 위에서 아래로 & 왼쪽에서 오른쪽 순서대로 채워짐 특징 → 노드가 위치할 수 있는 곳에 노드가 존재하지 않는다면 공집합 노드가 존재하는 것으로 간주 [배열 기반의 이진트리] ★부모노드를 참고할때 ..
· PS 연습
덱을 사용하는 문제임 잘못풀었는데 답은 나와서 왜 틀렸나 계속 고민했었음 내 풀이(망한 코드) #include #include using namespace std; int main() { deque dq; int N; cin>>N; int move; int in_ballon[1001]; int idx; for(int i=1; i>in_ballon[i]; //3 2 1 -3 -1 } while(!dq.empty()) { int move; idx=dq.front(); cout
· PS 연습
더보기 덱을 이용하는 문제 ☞ 내가 문제 이해를 잘못 해서 시간이 오래 걸림 내 풀이 3가지 상황이 있다 1. 주어진 숫자가 바로 맨 앞에 위치해 있었던 경우 2. 왼쪽으로 이동해야 하는 경우 3. 오른쪽으로 이동해야 하는 경우 #include #include using namespace std; int main() { deque dq; int N; cin>>N; int M; cin>>M; int num; int result=0; for(int i=1; i>num; if(dq.front()==num)// { dq.pop_front(); continue; } int left; int right; for(int i=0; ileft)//left로 가야하는 상황 { for(int i=0; i
양방향으로 넣고 뺄수 있는 자료구조 deque : double ended queue [양방향 연결리스트를 기반으로 구현된 덱] 양방향 연결리스트를 이용하여 만들며, head와 tail을 각각 가리킨다 ▶ ADT 필요한 기능 : 덱 초기화, 덱 비었는지 확인, 덱의 머리/꼬리에 데이터 저장, 덱의 머리/꼬리에 데이터를 반환 및 소멸, 덱의 머리/꼬리에 있는 데이터를 소멸하지 않고 반환 void DequeInit(Deque * pdeq); int DQIsEmpty(Deque * pdeq); void DQAddFirst(Deque * pdeq, Data data); void DQAddLast(Deque * pdeq, Data data); Data DQRemoveFirst(Deque * pdeq); Data D..
· PS 연습
난 리스트+큐로 풀었지만 큐만으로도 풀수 있는 문제 [내 풀이] #include #include #include using namespace std; int main() { list circle; list ::iterator iter=circle.begin(); queue result; int n; cin>>n; int k; cin>>k; for(int i=1; i
선입 선출의 자료구조. [큐의 종류] 배열을 기반으로 구현된 큐 리스트를 기반으로 구현된 큐 [배열을 기반으로 구현된 큐] = 원형 큐 ※ 스택과 큐는 차이가 별로 없어보이지만 구현방법에는 차이가 크다 ! ▶ ADT 필요한 기능 : 큐 초기화, 큐 비었는지 확인, 큐에 데이터 넣기, 큐에서 데이터 꺼내기, 다음에 나올 데이터 들여다보기 void QueueInit(Queue * pq); int QIsEmpty(Queue * pq); void Enqueue(Queue * pq, Data data); //데이터 삽입 Data Dequeue(Queue * pq); //데이터 삭제 Data QPeek(Queue * pq); ▶ 배열을 기반으로 구현된 리스트의 문제점 ★ 위 그림에서 front의 index를 1씩 ..
생선묵김치찌개
준혁's 코딩 연구기록