분류 전체보기(109)
-
배열을 이용한 원형 큐의 확장
2022.04.29 - [C++/자료구조] - 배열을 이용한 큐 구현 위의 글에서 원형큐를 참고한다. 큐가 가득 찬 경우 만약 다음과 같이 큐가 가득 찬 경우 capacity를 capacity*capacity만큼 늘린다. 다음은 이를 구현한 내용이다. 멤버 함수 생성자 : 기본 capacity는 10으로 한다. 소멸자 Enqueue(element) : element요소를 rear쪽에 넣는다. Dequeue() : element요소를 front쪽부터 삭제한다. IsFull() : 큐가 가득찼다면 true를 반환한다. Extend() : 큐를 확장한다. CopyArray(array, old_array) : array에 old_array를 복사한다. ArrayClear(array) : array를 0으로 초기..
2022.04.29 -
C++ 배열에서 데이터를 초과하여 입력한다면?
아래의 코드는 정상적으로 작동된다. #include using namespace std; int main(void) { int *ptr = new int[3](); //힙 공간에 동적으로 int형 배열을 할당한다. for(int i = 0; i
2022.04.28 -
스택: 배열의 확장
2022.04.22 - [C++/자료구조] - 배열을 이용한 스택 구현 스터디에서 스택에서의 배열을 확장할 수 있다는 이야기를 듣게 되었다. 그를 구현해 보았다. 아래 코드의 멤버 함수와 멤버 변수는 다음과 같다. Stack Class의 멤버 함수 디폴트 생성자 : 기본 capacity는 10이고 top은 -1이다. 생성자(int capacity) : capacity의 값은 입력 받은 대로 설정하고, top은 -1이다. 소멸자 : 스택을 비우고 스택에 할당된 공간을 해제한다. Push(int element) : 스택에 요소를 push한다. 그 후 스택이 꽉찼다면 Extend()함수를 실행한다. Pop() : 스택의 요소를 pop한다. 만약 스택이 비어있다면 -1을 리턴한다. Top() : 스택의 top ..
2022.04.27 -
소모적 탐색(Exhaustive Search)
아래 그림에서 원으로 표시한 것을 노드(Node)라고 한다. 직접 갈 수 있는 노드를 인접 노드(Adjacent Node)라고 한다. 예를 들어 A의 인접 노드는 G, B다. 그리고 각 노드를 잇는 선을 간선이라고 한다. A에서 I로 갈 수 있을까? 소모적 탐색 A에서 출발하여 갈 수 있는 모든 곳을 가 본 후, 가는 길이 없다면 길이 없다는 결론을 내리고, 만약 있다면 더 이상 다른 길을 찾지 말고, 길이 있다는 결론을 내린다. 소모적 탐색에는 깊이우선 탐색과 너비우선 탐색이 있다.
2022.04.27 -
4344번 - 평균은 넘겠지
문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. Tip. int / int -> float하면 답이 이상하게 나오기 때문에 int중 하나를 float으로 바꿔준다. #include using namespace std; int main(void) { ios::sync_with_stdio..
2022.04.26 -
8958번 - OX퀴즈
문제 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 출력 각 테스트 케이스마다 점수를 출력한다. #include using namespace std; class stack { public..
2022.04.26