본문 바로가기

프로그램언어/C언어

cos pro1급 샘플문제 구조 문제1 학생들의 학번과 등수가 주어질 때, 학번을 등수 순서대로 정렬하려 합니다(단, 등수가 같은 학생은 없다고 가정합니다). 이를 위해 다음과 같이 구조체를 정의했습니다. typedef struct Student{ int student_number; int rank; }Student; 또한, 다음과 같이 프로그램 구조를 작성했습니다. 1. 학생의 학번과 등수로 구성된 구조체 배열을 생성 및 초기화합니다. 2. 생성된 구조체 배열을 등수 기준으로 오름차순 정렬합니다. 3. 정렬된 구조체 배열에서 학번을 첫 번째 원소부터 순서대로 가져와 새로운 배열에 넣습니다. 4. 생성된 학번 배열을 return 합니다. 학생들의 학번이 들어있는 배열 student_numbers와 student_numbers의 길이 s.. 더보기
cos pro2급 샘플문제2 문제1 왼손 장갑의 제품 번호가 들어있는 배열과 오른손 장갑의 제품 번호가 들어있는 배열이 있습니다. 제품 번호는 1부터 10 사이의 자연수입니다. 제품 번호가 같은 왼손장갑과 오른손 장갑을 합쳐 장갑 한 쌍을 만들 수 있습니다. 이때, 최대한 많은 쌍의 장갑을 만들면 최대 몇 쌍을 만들 수 있는지 구하려 합니다. 이를 위해 다음과 같이 프로그램 구조를 작성했습니다. 1. 왼손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다. 2. 오른손 장갑이 제품 번호별로 몇 개씩 있는지 개수를 셉니다. 3. 각 제품 번호별로 최대한 많은 장갑 쌍을 만들면서 개수를 셉니다. 왼손 장갑의 제품 번호가 들어있는 배열 left_gloves와 left_gloves의 길이 left_gloves_len, 오른손 장갑의 제품.. 더보기
cos pro2급 샘플문제1 문제1 A 학교에서는 단체 티셔츠를 주문하기 위해 학생별로 원하는 티셔츠 사이즈를 조사했습니다. 선택할 수 있는 티셔츠 사이즈는 작은 순서대로 "XS", "S", "M", "L", "XL", "XXL" 총 6종류가 있습니다. 학생별로 원하는 티셔츠 사이즈를 조사한 결과가 들어있는 배열 shirt_size와 shirt_size의 길이 shirt_size_len이 매개변수로 주어질 때, 사이즈별로 티셔츠가 몇 벌씩 필요한지 가장 작은 사이즈부터 순서대로 배열에 담아 return 하도록 solution 함수를 완성해주세요. 매개변수 설명 학생별로 원하는 사이즈를 조사한 결과가 들어있는 배열 shirt_size와 shirt_size의 길이 shirt_size_len이 solution 함수의 매개변수로 주어집니다.. 더보기
실행파일 실행시 인자 삽입 int main(int argc, char* argv[]) 메인 함수에서 int main(int argc, char* argv[]) argc argument count argv argument vector 속성창에서 [디버깅] - 명령 인수에 인자값 삽입 더보기
스택 괄호검사 프로그램 스택을 이용하여 괄호를 검사하는 프로그램을 확인해보겠습니다. 괄호는 "[, ]", "{, }", "(, )"등 세가지를 사용하여 서로쌍인지 검사하겠습니다. 소스 코드 #include #include #include #define MAX_STACK_SIZE 100 typedef char element; typedef struct { element data[MAX_STACK_SIZE]; int top; } StackType; // 스택 초기화 함수 void init_stack(StackType* s) { s->top = -1; } // 공백 상태 검출 함수 int is_empty(StackType* s) { return (s->top == -1); } // 포화 상태 검출 함수 int is_full(Stac.. 더보기
자료구조 스택 스택이란? 스택은 사전적으로 '건초', '더미'를 의미한다. 자료구조에서 스택은 LIFO(Last-In First-Out)으로 마지막에 들어온 것이 먼저 나간다는 뜻으로 후입선출법이라고 한다. 예을 들어 접시 더미를 생각해보면 접시를 한개씩 쌓아올리고 맨 위부터 한 개씩 뺀다고 생각하면 먼저 쌓아올린 접시가 나중에 나갈것이고 나중에 쌓아올린 접시가 먼저 나갈 것이다. 이처럼 먼저 들어온게 나중에 나가는 것을 '선입후출'이라하고 나중에 들어온게 먼저 나가는 것을 '후입선출'이라 한다. 스택의 연산 스택에는 두 가지의 기본 연산이 있다. 위 그림과 같이 삽입 연산(PUSH)과 삭제 연산(POP)이다. 그 외의 연산도 필요한다. 아래에서 연산들을 확인해보자. is_sull(s) : 스택이 가득 차있는지 검사하.. 더보기
균형 이진 탐색트리 AVL트리(Abelson-Velskii Tree)는 아델슨 벨스키(Abelson-Velskii)와 라딘스(Landis)가 제안한 대표적인 균형 이진 탐색트리이다. AVL 트리는 각 노드에서 왼쪽 서브 트리의 높이 hL과 오른쪽 서브 트리의 높이 hR의 차이가 1이하인 트리를 말한다. 더보기
아스키코드 ASCII(American Standard Code for Information Interchange)코드 아스키 코드는 0부터 127까지 총 128개의 문자들로 이루어져 있습니다. 아래 그림을 10진수, 8진수, 16진수, 문자로 표현되어 있습니다. 더보기