본문으로 건너뛰기

전공과목 소개

우리 학과에선 이런걸 배워요

자료구조

조회수

2

과목정보

  • 수강학년

    2학년

  • 강의유형

    이론

  • 과목 키워드

    #C++ #프로그래밍

과목소개

무엇을 배우는 과목인가요?

skeleton-univ-loaderuniv-아주대학교-icon

아주대학교 디지털미디어학과

컴퓨터 프로그램을 통해 문제를 해결하는 과정에서 사용하는 정보의 표현 형식과 구성 및 활용 기법을 학습합니다. 정보 표현의 형식으로서 순차 정보를 표현하는 배열(array), 리스트(list), 스택(stack), 큐(queue)의 구조와 계층적 정보를 표현하는 트리(tree)의 구조, 관계형 정보를 표현하는 그래프(graph)의 구조를 학습합니다. 이 과목은 효율적인 컴퓨터 프로그램은 효율적인 자료구조와 알고리즘을 바탕으로 구현되므로 이 과목은 효율적인 컴퓨터 프로그래밍을 위한 가장 기본적이며 중요한 내용을 학습하는 교과목입니다.

어떤 학생들이 수강하면 좋은가요?

skeleton-univ-loaderuniv-아주대학교-icon

아주대학교 디지털미디어학과

프로그래밍 기초를 배운 뒤, 더 효율적이고 체계적인 문제 해결 능력을 키우고 싶은 학생. 특히 컴퓨터 전공자뿐 아니라 데이터 처리, 알고리즘 설계에 관심 있는 학생에게 적합합니다..

수강 전 알았다면 좋았을 것은 무엇이 있나요?

skeleton-univ-loaderuniv-아주대학교-icon

아주대학교 디지털미디어학과

기본적인 C++ 언어 사용법과 프로그래밍 언어의 배열, 반복문, 함수 개념에 익숙하면 수월합니다. 또한 수학적 사고(시간 복잡도, 로그 개념 등)도 미리 알면 도움이 됩니다.

다른 유사 과목과 어떤 차이가 있나요?

skeleton-univ-loaderuniv-아주대학교-icon

아주대학교 디지털미디어학과

‘알고리즘’ 과목은 문제 해결 절차와 방법론에 집중하는 반면, 자료구조는 문제 해결의 토대가 되는 데이터 표현 방식에 집중합니다. 즉, 자료구조는 "데이터를 어떻게 저장, 관리할 것인가", 알고리즘은 "어떻게 계산, 처리할 것인가"에 초점을 둡니다.

수강 시 무엇을 배울 수 있나요?

skeleton-univ-loaderuniv-아주대학교-icon

아주대학교 디지털미디어학과

배열, 연결리스트, 스택, 큐, 트리, 그래프와 같은 기본 자료구조를 배운다. 또한 이를 활용한 탐색, 정렬 알고리즘 구현과 효율성 분석 방법에 대해서 배울 수 있습니다.

평가방식 또는 시험 꿀팁은 뭐가 있을까요?

skeleton-univ-loaderuniv-아주대학교-icon

아주대학교 디지털미디어학과

오픈 라이브러리 시험으로 진행되며 중간, 기말 두번의 지필평가로 평가됩니다. 시험은 오픈 라이브러리인만큼 종이로 된 자료는 무엇이든지 가져올 수 있으므로 자료 챙기는 것을 잊지말아야 합니다. 그렇기 때문에 암기보다는 이해가 반드시 동반되어야합니다.

과목 커리큘럼

  • 11주차

    해시테이블

    C++에서의 해시 테이블(Hash Table) 구조와 동작 원리를 학습한다. 키(Key)와 값(Value)을 매핑하여 데이터를 효율적으로 저장하고 검색하는 방식을 이해하고, 충돌(Collision) 발생 시 해결 기법(체이닝, 오픈 어드레싱 등)을 익힌다. 또한 C++ STL의 unordered_map과 같은 해시 기반 컨테이너 사용법을 실습하며, 해시 함수 설계와 성능 분석을 통해 실제 프로그래밍에서의 응용 능력을 기른다.

  • 13주차

    분할정복

    분할정복(Divide and Conquer) 알고리즘 기법의 개념과 원리를 학습한다. 문제를 작은 하위 문제로 분할하고 이를 재귀적으로 해결한 뒤 결과를 합치는 과정을 통해 복잡한 문제를 효율적으로 해결하는 방법을 이해한다. 대표적으로 병합 정렬(Merge Sort), 퀵 정렬(Quick Sort), 이진 탐색(Binary Search) 등의 알고리즘을 C++로 구현하며, 시간 복잡도 분석과 함께 실제 문제 해결 능력을 기른다.

핵심 과제

  • In-Order Formula

    In-order formula는 우리가 통상적으로 사용하는 수식입니다. 예를 들면 * + 3 4 5 는 (3+4)*5가 됩니다. 기본적으로 입력에 따라 만든 tree를 in-order traversal을 진행하여 해결할 수 있습니다. 하지만 덧셈의 경우 위의 예에서와 같이 필요한 경우 괄호를 포함해야 합니다. 즉, 계산 결과가 다음에 어떻게 활용되어야 할지를 알아야 괄호를 적절히 포함할 수 있습니다. (이하 생략)

  • NY에서 길찾기

    뉴욕시에서 주어진 두 위치 사이의 최단 경로를 찾는 문제입니다. 주어진 파일에는 뉴욕시의 각 지점과 인접한 위치 사이의 거리가 표시되어 있습니다. 이 파일을 읽고, 두 지점을 입력 받아 최단 경로에 해당되는 지점들을 출력합니다. (이하생략)

우리 학과의 다른 전공과목 더보기

  • 2학년

    3D그래픽디자인

  • 2학년

    디지털사운드기초

  • 2학년

    객체지향프로그래밍 및 실습

  • 2학년

    메타버스콘텐츠기획

  • 3학년

    3D어셋크리에이션