총 143개
-
C언어 - 포인터에 관련한 다음 물음들에 대한 답을 제시하시오2025.01.271. 포인터의 개념과 기능 포인터의 개념은 '주소를 저장하는 변수'로 여기에는 두 가지 중요한 점이 있습니다. 하나는 '주소를 저장한다'는 것이고 다른 하나는 '변수'라는 것입니다. 포인터는 정의할 때 *를 붙이며, 포인터에 어떤 주소를 넣느냐에 따라 정수형 포인터, 문자 포인터, 함수 포인터 등의 이름이 지정됩니다. 포인터는 메모리를 저장할 수 있는 특징이 있지만, 변수이기 때문에 생성만 해놓은 상태만으로는 아무것도 할 수 없습니다. 다른 변수의 메모리 주소를 대입하거나 메모리를 할당하는 함수를 사용하여 메모리를 할당받은 후, 해...2025.01.27
-
C로 배우는 쉬운 자료구조 4판 5장 - 스택2025.11.161. 스택(Stack)의 정의 및 특성 스택은 모든 삽입 및 삭제가 한 끝(top)에서만 이루어지는 후입선출(LIFO: Last-In-First-Out) 형태의 선형 자료구조입니다. 데이터가 입력된 순서의 역순으로 출력되며, 서브프로그램 호출, 함수 실행 등 다양한 컴퓨터 시스템에서 활용됩니다. 스택 포인터(top)를 사용하여 삽입과 삭제 위치를 관리하며, 배열이나 연결 리스트로 구현할 수 있습니다. 2. 스택의 구현 및 알고리즘 스택은 1차원 배열 또는 연결 리스트를 이용하여 구현됩니다. 배열 구현 시 top 변수를 -1로 초기화...2025.11.16
-
c언어로 쉽게 풀어쓴 자료구조 개정 3판 6장(연결리스트) 연습문제 (해설 포함)2025.05.161. 원형 연결 리스트 원형 연결 리스트는 마지막 노드의 포인터가 첫 번째 노드를 가리킨다. 2. 배열 n번째 요소를 찾는다는 것은 특정한 값을 탐색한다는 것이 아니다. 즉 특정 요소로 접근하겠다는 의미인데, 이를 가장 빠르게 할 수 있는 것은 당연히 배열이다. 배열은 인덱스를 통해 특정 요소로 가장 빠르게 접근할 수 있는 자료구조다. 한 번에 접근이 가능하므로 당연히 시간복잡도는 O(1)이다. 3. 단순 연결리스트 단순 연결리스트의 마지막 노드의 링크(link) 필드는 항상 NULL을 가리킨다. 따라서 last->link==NUL...2025.05.16
-
c언어로 쉽게 풀어쓴 자료구조 개정 3판 5장(큐) 연습문제 (해설 포함)2025.05.151. 큐 큐는 선입선출(First In First Out, FIFO) 구조입니다. 배열로 구현한 원형 큐에서는 포화 상태와 공백 상태를 구별하기 위해 배열의 인덱스 한 자리를 비우는 것이 중요합니다. 큐의 삽입은 후단(rear)에서, 삭제는 전단(front)에서 이루어집니다. 큐 구현 시 시간 복잡도는 O(1)입니다. 2. 스택을 이용한 큐 구현 스택은 후입선출(Last In First Out) 구조이지만, 스택 2개를 사용하면 큐의 선입선출(First In First Out) 성질을 만족할 수 있습니다. 하나의 스택(inStack...2025.05.15
-
자료구조(프로그램을 자료구조와 알고리즘으로 나누어 설명)2025.01.031. 자료구조 자료구조는 데이터를 어떠한 형태로 저장하고 관리할 것인지에 대한 방법으로, 자료를 어떤 효율적 방법으로 저장할 것인가를 의미합니다. 프로그램을 구성하는 핵심 요소 중 하나입니다. 2. 알고리즘 알고리즘은 저장된 데이터를 찾거나 변형하거나 수정할 때 필요한 방법으로, 문제를 해결하기 위한 절차를 의미합니다. 프로그램을 구성하는 또 다른 핵심 요소입니다. 1. 자료구조 자료구조는 프로그래밍에서 매우 중요한 개념입니다. 데이터를 효율적으로 저장하고 관리하는 방법을 제공하기 때문에 복잡한 문제를 해결하는 데 필수적입니다. 배...2025.01.03
-
방통대 알고리즘 출석과제물2025.01.241. 빅오 함수 입력 크기 n에 대한 빅오 함수들을 성능 관점에서 가장 나쁜 것부터 차례대로 나열하면 O(2^n) -> O(n^3) -> O(n^2) -> O(nlogn) -> O(n) -> O(logn) -> O(1)이다. 수행시간에 비례한 효율성을 고려할 경우 n의 값이 증가하면 연산 시간도 증가하며, 뚜렷한 차이를 보인다. 따라서 시간 복잡도 함수식의 결과로 수행시간의 효율성을 증명할 수 있다. 2. 이진 탐색 이진 탐색의 점화식은 T(n) = O(1)일 때 n=1, T(n/2) + O(1)일 때 n>=2이며, 폐쇄형은 T(n...2025.01.24
-
포인터 연산, 1차원 배열의 합과 평균, 행렬의 회전, a의b승의 계산 결과 및 갯수2025.01.161. 포인터 연산 포인터 변수를 선언하고 증가시키는 예제를 직접 코딩하여 포인터 연산의 원리를 이해한다. 포인터 변수의 값이 증가하기 전과 후의 변화를 확인할 수 있다. 2. 1차원 배열의 합과 평균 사용자로부터 10개의 정수를 입력받아 배열에 저장한 후, 배열 원소의 합과 평균을 계산하여 출력한다. for문과 cin, cout 함수를 활용하여 문제를 해결한다. 3. 행렬의 회전 3x3, 5x5, 7x7 크기의 2차원 배열에 1부터 차례대로 값을 넣고, 마지막 열부터 위에서 아래로 차례대로 출력하여 90도 회전된 행렬을 확인한다. ...2025.01.16
-
연결형 자료구조를 이용한 다항식의 계산 프로그래밍2025.01.131. 다항식 계산 프로그래밍 이 프로그래밍 과제에서는 연결형 자료구조를 이용하여 다항식의 계산을 구현하였습니다. 다항식의 항을 표현하는 구조체를 정의하고, 다항식을 입력받아 연결 리스트로 구성하는 함수, 두 다항식을 더하는 함수, 두 다항식을 곱하는 함수 등을 구현하였습니다. 이를 통해 연결 리스트, 포인터 연산, 알고리즘 설계의 중요성을 배웠고, 프로그래밍 경험을 쌓을 수 있었습니다. 2. 연결 리스트 이 프로그래밍 과제에서는 다항식을 연결 리스트로 표현하였습니다. 연결 리스트는 동적 메모리 할당을 통해 구현되며, 각 항목은 다음...2025.01.13
-
[건국대학교 컴퓨터프로그래밍2 A+][2024 Ver] 과제42025.01.201. 구조체 과제(4)에서는 구조체 rect를 정의하고, 이를 원소로 가지는 배열 shapes를 선언 및 초기화합니다. 이후 for문을 통해 shapes 배열의 각 원소에 대해 calc_area 함수를 실행하여 면적을 계산하고 출력합니다. 2. 포인터 2번 문제에서는 int형 변수 x, y의 값을 swap 함수를 통해 교환합니다. swap 함수는 int형 포인터 변수 px, py를 매개변수로 받아 간접 참조를 통해 값을 교환합니다. 3번 문제에서는 레퍼런스를 사용하여 동일한 기능을 구현합니다. 3. qsort 4번 문제에서는 qso...2025.01.20
-
C언어 성적 처리 프로그램2025.11.161. C언어 배열과 포인터 C언어에서 2차원 배열을 이용하여 학생 성적 데이터를 저장하고 관리하는 방법을 다룬다. 5명의 학생과 3개 과목(국어, 영어, 수학)의 성적을 scores[6][5] 배열에 저장하며, 포인터를 활용하여 배열 요소에 접근한다. 배열의 6번째 행은 과목별 총점을 저장하는 용도로 사용되며, 이를 통해 메모리 효율적인 데이터 관리를 학습할 수 있다. 2. 성적 통계 계산 프로그램은 학생별 총점, 과목별 총점, 과목별 평균을 계산한다. 각 학생의 3개 과목 점수를 합산하여 총점을 구하고, 모든 학생의 각 과목 점수...2025.11.16
