스택 (Stack)스택이란자료의 입출력이 후입선출(Last-in First-Out)인 형태로 구성된 자료구조가장 늦게 들어온 자료가 가장 먼저 나가게 되는 형태 이를 C로 구현해 보면 #include using namespace std;#define MAX_STACK_SIZE 100typedef int element;element stack[MAX_STACK_SIZE];int top = -1;int is_empty() { return (top == -1);}int is_full() { return (top == MAX_STACK_SIZE - 1);}void push(element item) { if (is_full()) { cerr 베이스는 C++이지만 기본문법만 다를뿐 C로 바꾸면 가동합니다. 스택에..
구조체를 동적할당하여 값을 직접접근하여 넣고 출력하기#include #include #include using namespace std;typedef struct studentTag { char name[10]; //char 1바이트 * 10 = 10바이트 int age; //4바이트 double gpa; //8바이트} student;int main(){ student* s; s = (student*)malloc(sizeof(student)); //student 구조체속 속성들의 크기합만큼 동적할당(10+4+8)=22바이트 할당 /*24로 나오는 이유는 메모리의 정렬위함. * * 구조체 속 name이 10바이트, age가4바이트, gpa가 8바이트인데 ..
희소행렬간의 덧셈과 전치#include #include using namespace std;#define MAX_TERMS 100typedef struct { int row; int col; int value;} element;typedef struct Matrix{ vector data; int rows; int cols; int terms; // 생성자에서 data를 MAX_TERMS로 초기화 Matrix() : data(MAX_TERMS), rows(0), cols(0), terms(0) {}} matrix;Matrix matrix_transpose2(Matrix &a) { matrix b; //b 행렬을 a의 전치행렬 형태로 //0이..
C++ 로 만들어본 다항식 덧셈#include #include using namespace std;#define MAX(a, b) (((a) > (b)) ? (a) : (b))#define MAX_Degree 101 //최대 항 개수// 다항식의 항typedef struct Term { int degree; // 계수 int exponent; // 지수} term;// 다항식 구조체typedef struct Polynomial { int numTerm; // 항의 개수 term term[MAX_Degree]; // 각 항을 저장할 배열} poly;// 다항식 출력 함수void printPoly(poly* p) { for (int i = 0; i numTerm;..
디버깅이란?디버깅은 소프트웨어 개발 과정에서 발생한 오류나 버그를 찾아 수정하는 작업을 의미합니다. 코드가 예상한 대로 동작하지 않거나 프로그램이 비정상적으로 종료될 때, 문제의 원인을 파악하고 수정하기 위해 디버깅을 수행합니다. 디버깅 과정은 일반적으로 다음과 같은 단계를 포함합니다:1. 오류 재현: 버그가 발생한 상황을 재현해 문제를 확인합니다.2. 원인 분석: 코드를 분석하여 오류의 근본 원인을 찾습니다.3. 수정: 문제를 해결할 수 있는 코드를 수정합니다.4. 검증: 수정한 코드가 정상적으로 동작하는지 확인합니다.디버깅 도구(디버거)를 사용하면 변수 값을 실시간으로 확인하거나 코드의 특정 지점에서 프로그램 실행을 멈추고 상태를 점검할 수 있어, 문제를 해결하는 데 도움이 됩니다. 디버깅 하는 방법..
문제어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.출력첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 풀기 전 로직 생각수를 입력받고 for문으로 해당 수까지 반복하도록 반복문을 설정한다.점차 증가하는 i..
문제주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.입력첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.출력주어진 수들 중 소수의 개수를 출력한다.풀기 전 로직 생각N을 입력받고 N만큼 입력받도록 반복문을 넣는다.입력 받을때마다 약수들의 합을 넣을 isper를 1로 초기화시킨 후 약수인지 판별하여 약수면 isper에 합해지도록 한다.isper이 1이거나 num이 1이 아니면 count를 1씩 증가시킨다. (isper이 1 그대로 나왔다는것은 약수가 없었기 때문)입력 반복문이 끝나면 count를 출력시킨다.코드#include using namespace std;int main() { int N; //어..