Skip to content
Home » 자료 구조 종류 | 개발자라면 무조건 알아야하는 자료구조! 5분컷. 최근 답변 221개

자료 구조 종류 | 개발자라면 무조건 알아야하는 자료구조! 5분컷. 최근 답변 221개

당신은 주제를 찾고 있습니까 “자료 구조 종류 – 개발자라면 무조건 알아야하는 자료구조! 5분컷.“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 노마드 코더 Nomad Coders 이(가) 작성한 기사에는 조회수 63,471회 및 좋아요 2,200개 개의 좋아요가 있습니다.

[자료구조] 자료구조 종류
  • 1. Array(배열)
  • Linked List(연결 리스트)
  • Stack(스택)
  • Queue(큐)
  • Tree(트리)
  • Heap(힙)
  • Hash Table(해시 테이블)
  • Graph(그래프)

자료 구조 종류 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 개발자라면 무조건 알아야하는 자료구조! 5분컷. – 자료 구조 종류 주제에 대한 세부정보를 참조하세요

#스택 #큐
니꼬쌤이 설명해주면 자료구조\u0026알고리즘도 겁나 쉽슴!
#알고리즘 #자료구조 #데이터구조 #stack #queue
이제는 알아야하지 않겠음?

📌 니콜라스와 무료로 코딩 공부하기
https://nomadcoders.co

자료 구조 종류 주제에 대한 자세한 내용은 여기를 참조하세요.

자료 구조(Data Structure) 개념 및 종류 정리 – 보통의 개발자

필수 자료 구조 8개 · 1. Array(배열) · 2. Linked List(연결 리스트) · 3. Stack(스택) · 4. Queue(큐) · 5. Hash table(해시 테이블) · 6. Graph(그래프) · 7.

+ 여기에 보기

Source: bnzn2426.tistory.com

Date Published: 2/29/2021

View: 3655

자료 구조 – 위키백과, 우리 모두의 백과사전

자료구조에는 여러 종류가 있으며, 이러한 각각의 자료구조는 각자의 연산 및 목적에 맞추어져 있다. 예를 들어 B-트리는 데이터베이스에 효율적이며, 라우팅 테이블은 …

+ 자세한 내용은 여기를 클릭하십시오

Source: ko.wikipedia.org

Date Published: 6/14/2022

View: 9151

7가지 자료구조(Data Structure)의 종류와 각각의 장단점 – iwuooh

자료구조(Data Structure)의 정의와 중요성 자료구조(Data Structure)란 컴퓨터 과학에서 데이터를 조직적으로 관리하여 구조적으로 표현하는 방식과 …

+ 자세한 내용은 여기를 클릭하십시오

Source: iwuooh.com

Date Published: 4/30/2021

View: 1046

[DS] 자료구조 개념 및 종류

자료구조의 종류로는 자료형의 따라 분류하는 단순 구조와 자료 간 관계가 1 대 1인 선형 구조, 1 대 다 혹은 다 대 다 구조인 비선형 구조, 마지막으로 …

+ 여기에 자세히 보기

Source: jammdev.tistory.com

Date Published: 1/10/2021

View: 8770

[Data structure] 자료구조 종류와 분류 – velog

자료구조의 분류 · 단순구조(Simple Structure). True/False, 정수, 실수, 문자 및 문자열과 같이 컴퓨터가 기본적으로 제공하는 자료형 · 선형구조(Linear …

+ 여기에 자세히 보기

Source: velog.io

Date Published: 7/17/2021

View: 213

자료구조 종류 – [정보통신기술용어해설]

자료구조 종류. (2022-05-29) ; 자료구조 구분, 선형 자료구조, 비선형 자료구조 …

+ 여기에 더 보기

Source: www.ktword.co.kr

Date Published: 1/18/2021

View: 4089

자료구조 종류를 알아보자 – bell_o_o_22 – 티스토리

단순 구조. 우리가 흔히 말하는 데이터 타입 또는 자료형이 여기에 해당된다. 나는 Python 같이 자료형에 유연한 언어를 사용할 때.

+ 더 읽기

Source: mutpp.tistory.com

Date Published: 1/25/2021

View: 1487

자료구조의 정의 – 데이터 공부하는 송

자료구조의 종류 · 단순구조(Simple Structure) · 선형 자료구조(Linear Data Structure) · 비선형 자료구조(NonLinear Data Structure) · 파일구조(File …

+ 여기에 보기

Source: bigsong.tistory.com

Date Published: 2/3/2022

View: 8870

주제와 관련된 이미지 자료 구조 종류

주제와 관련된 더 많은 사진을 참조하십시오 개발자라면 무조건 알아야하는 자료구조! 5분컷.. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

개발자라면 무조건 알아야하는 자료구조! 5분컷.
개발자라면 무조건 알아야하는 자료구조! 5분컷.

주제에 대한 기사 평가 자료 구조 종류

  • Author: 노마드 코더 Nomad Coders
  • Views: 조회수 63,471회
  • Likes: 좋아요 2,200개
  • Date Published: 2021. 8. 15.
  • Video Url link: https://www.youtube.com/watch?v=Nk_dGScimz8

[자료구조] 자료구조 종류

스택(Stack : 쌓다)은 그림에서 사과를 쌓을 때 위로 쌓는 것만 가능하듯이 한 방향으로만 입력할 수 있으며 구조 중간에 값을 끼어 넣어 저장할 수 없다. 즉, 같은 크기의 자료를 정해진 한 방향으로만 입력, 저장, 삭제가 가능하다.

자료 구조(Data Structure) 개념 및 종류 정리

자료 구조란?

데이터 값의 모임, 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것.

예를 들어 한정된 크기의 책장이 있고, 넣어야 될 책들이 있다고 하자.

빈 책장

가장 많은 책을 넣는 방법은 아무 규칙 없이 있는 책을 모두 꽂아 넣는 것이다. 그럼 당장은 이 책장의 공간을 가장 효율적으로 사용한 것 같지만, 이후 책을 찾을 때 큰 문제가 발생한다. 아무 규칙 없이 책을 꽂아 넣었기 때문에 찾을 때도 규칙 없이 모든 범위를 찾아야 한다.

따라서 이번에는 책의 제목을 오름차순 형태로 꽂아 넣는다는 규칙을 세워 넣어 보면, 이후에 책의 제목을 이용해 어디에 꽂혀있는지 찾기가 훨씬 수월해질 것이다.

책 제목을 오름차순으로 정렬해 진열

또한 책의 모든 공간을 모두 사용할 수 있다. 다만 처음에 책을 꽂거나 이후에 책을 추가할 때 수고스러움이 생기게 된다.

이번에는 IT관련 서적을 찾고 싶은 사람이 있을 수 있다. 이 경우에는 위의 방법이 딱히 도움되지 않는다. 따라서 이번에는 다음과 같이 분야별로 분류해 책을 정리했다.

각 책장의 층을 분야별로 구분

이제 IT 관력 서적만 찾아볼 수 있다. 하지만 위 그림처럼 IT 서적은 더 진열해 놓고 싶은데 자리가 없고, 소설이 꽂혀있는 라인은 너무 여유롭다. 즉 공간의 비효율이 발생하기 시작한다. 이를 위해 다음과 같이 수정해 보자.

가림막 설치

가림막을 이용해 라인 별로 분류하는 것이 아닌 좀 더 공간을 효율적으로 사용해 남은 IT 관력 서적들을 모두 꽂아 넣었다. 하지만 가림막이 불필요한 공간을 차지하게 되고, 분류 역시 IT나 소설 분류가 밑으로 넘어가버려 책을 꽂을 때나 찾을 때 약간의 헷갈림이 발생할 수 있게 됐다.

서론이 매우 길었는데, 결국 예시의 책장과 책은 컴퓨터 세계에서는 메모리와 데이터로 유사하게 비유할 수 있다.

책장 = 메모리

책 = 데이터

물론 디테일이 많이 다를 수 있지만 전체적인 개념을 이해하는 데에는 무리가 없다고 생각한다. 연산에 사용되는 컴퓨터의 메모리 자원은 매우 한정적인데 반해 처리해야 할 데이터는 무수히 많을 수 있다. 따라서 이 메모리 공간을 효율적으로 사용해야 하는데 필요한 것이 자료 구조이다.

모든 목적에 맞는 자료구조는 없다. 따라서 각 자료구조가 갖는 장점과 한계를 잘 아는 것이 중요하다.

위의 간단한 예시에서도 책장 안에 다양한 이유와 목적을 가지고 책들을 진열할 수 있었다.

단, 자료 구조에서는 메모리 공간의 효율뿐만 아니라 실행 시간의 효율성도 따진다.

자료 구조와 알고리즘의 관계

Algorithm(알고리즘 또는 알고리듬)은 어떤 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것. 문제풀이에 필요한 계산절차 또는 처리과정의 순서다.

알고리즘의 중요한 특징은 같은 지식수준을 가진 사람이라면 그 알고리즘을 보고 누구나 같은 결과를 낼 수 있어야 한다. 요리의 레시피(recipe)에 비유해 볼 수 있다.

보통 자료 구조가 선택되면 그에 적용할 알고리즘은 거의 명확해진다. 즉, 자료 구조가 효율적인 알고리즘을 사용할 수 있게 함으로 자료 구조와 알고리즘은 매우 밀접한 관계를 가질 수밖에 없다.

위의 예를 다시 생각해 보면, 책장에 진열된 책들을 어떤 순서나 규칙을 가지고 찾을 지에 대한 방법이라고 생각하면 된다. 왼쪽부터 순서대로 찾을 수도 있고, 역순으로 찾을 수도 있고, 중간부터 찾을 수도 있다.

여기서 만약 클린 코드라는 책을 찾아야 할 때 책장에 진열되어 있는 구조에 따라 효율적으로 책을 찾는 방법이 달라지게 된다.

제목 순으로 진열되어 있다면 역순으로 찾는 방법을 선택하게 되고, 분야 별로 진열되어 있다면 IT 서적 쪽을 먼저 찾게 될 것이다.

즉, 위와 같이 보통은 자료 구조의 선택 → 효율적인 알고리즘의 선택이 된다.

또한 알고리즘을 프로그램 명령어들의 집합이라고도 한다.

프로그램은 특정 문제를 해결하기 위한 처리 방법과 순서를 기록한 명령어들의 모음이다. 이 프로그램이 실행되기 위해서는 메모리에 올릴 데이터가 필요하며 이 데이터들을 담아내는 방식은 자료구조다.

즉, 넓은 의미에서 자료구조 + 알고리즘(+a) = 프로그램이라고 할 수 있다.

위의 정의만 보면 프로그램 = 알고리즘 같아 보이지만, 디테일을 따지면 엄연히 다르다. 가장 간단한 예로 알고리즘은 항상 같은 결과를 보장하지만 프로그램은 그렇지 않을 수 있다.

필수 자료 구조 8개

자료 구조 분류

자료 구조 실행 시간 정리 표

1. Array(배열)

동일한 타입의 데이터들을 저장하며, 고정된 크기를 가지고 있다.

인덱싱이 되어 있어 인덱스 번호로 데이터에 접근할 수 있다.

→ 배열 목록, 힙, 해시 테이블, 벡터 및 행렬과 같은 기타 데이터 구조를 구축하기 위한 빌딩 블록으로 사용

→ 삽입 정렬, 빠른 정렬, 버블 정렬 및 병합 정렬과 같은 다양한 정렬 알고리즘에 사용

2. Linked List(연결 리스트)

각 데이터 시퀀스가 순서를 가지고 연결된 순차적 구조

동적인 데이터 추가/삭제에 유리하다.

각 요소는 Node

각 Node에는 key와 다음 노드를 가리키는 포인터인 next 가 포함

다음 노드를 가리키는 포인터인 가 포함 첫 번째 요소는 Head

마지막 요소는 Tail

→ Alt + Tab을 사용하여 프로그램 간 전환

→ 갤러리

사실 위 배열과 연결 리스트는 아래의 자료 구조들을 구현하는 데 사용되는 기본 자료 구조들이다.

3. Stack(스택)

순서가 보존되는 선형 데이터 구조

가장 마지막 요소(가장 최근 요소)부터 처리하는 LIFO (Last In First Out)

→ 실행 취소

→ 수학적 표현식을 구문 분석하고 평가

→ 재귀 프로그래밍에서 함수 호출을 구현

4. Queue(큐)

가장 먼저 입력된 요소를 처리하는 FIFO (First In First Out)

→ 멀티스레딩에서 스레드를 관리

→ 대기열 시스템

5. Hash table(해시 테이블)

해시함수를 사용하여 변환한 값을 색인(index)으로 삼아 키(key)와 데이터(value)를 저장하는 자료구조

데이터의 크기에 관계없이 삽입 및 검색에 매우 효율적

→ 데이터베이스 인덱스 구현

→ 사용자 로그인 인증

→ “set” 데이터 구조 구현

보통 테이블 내에 더 작은 서브그룹인 버킷(bucket)에 키/값(key/value) 쌍(pair)을 저장한다.

단, 충돌이 자주 일어날 수 있으며 이를 위해 다양한 방법으로 해시 함수를 개선하거나 해시 테이블의 구조 개선(chaining, open addressing 등)의 방법이 사용된다.

(참고: 해시 충돌 개선)

6. Graph(그래프)

nodes/vertices(노드) 사이에 edge(엣지) 가 있는 collection

사이에 가 있는 collection directed(방향) 그래프는 일방통행

undirected(무방향) 그래프는 양방향

→ 소셜 미디어 네트워크를 나타내는 데 사용

→ 검색 엔진에 의해 웹 페이지 및 링크를 나타내는 데 사용

→ GPS에서 위치와 경로를 나타내는 데 사용

7. Tree(트리)

그래프가 계층적 구조를 가진 형태

최상위 노드(루트)를 가지고 있음

상위 노드를 부모(parent) 노드, 하위 노드를 자식(child) 노드라 한다.

→ Binary Trees(이진트리)

→ Binary Search Tree(이진 검색 트리)

→ Heap(힙)

8. Heap(힙)

Binary Tree(이진트리)

최소 힙 : 부모의 키 값이 자식의 키 값보다 작거나 같다. 루트 노드의 키 값이 트리의 최솟값

최대 힙: 부모의 키 값이 자식의 키 값보다 크거나 같다. 루트 노드의 키 값이 트리의 최댓값

최대 힙

→ 힙 정렬 알고리즘

→ 우선순위 큐

References

위키백과, 우리 모두의 백과사전

자료구조(資料構造, 영어: data structure)는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다.[1][2][3] 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다.[4] 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는 대개 추상 자료형의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다.

자료구조에는 여러 종류가 있으며, 이러한 각각의 자료구조는 각자의 연산 및 목적에 맞추어져 있다. 예를 들어 B-트리는 데이터베이스에 효율적이며, 라우팅 테이블은 네트워크(인터넷, 인트라넷)에 일반적이다.

다양한 프로그램을 설계할 때, 어떠한 자료구조를 선택할지는 가장 우선적으로 고려되어야 한다. 이는 큰 시스템을 제작할 때 구현의 난이도나 최종 결과물의 성능이 자료구조에 크게 의존한다는 것을 많은 경험이 뒷받침하기 때문이다. 일단 자료구조가 선택되면 적용할 알고리즘은 상대적으로 명확해지기 마련이다. 때로는 반대 순서로 정해지기도 하는데, 이는 목표로 하는 연산이 특정한 알고리즘을 반드시 필요로 하며, 해당 알고리즘은 특정 자료구조에서 가장 나은 성능을 발휘할 때와 같은 경우이다. 어떠한 경우든, 적절한 자료구조의 선택은 필수적이다.

이러한 관점은 알고리즘보다 자료구조가 보다 중요한 요소로 적용되는 많은 정형화된 개발론 그리고 프로그래밍 언어의 개발을 촉발시켰다. 대부분의 언어는 일정 수준의 모듈개념을 가지고 있으며, 이는 자료구조가 검증된 구현은 감춘 채 인터페이스만을 이용하여 다양한 프로그램에서 사용되는 것을 가능하게 해준다. C++, 자바와 같은 객체지향 프로그래밍 언어는 특별히 이러한 목적으로 객체를 사용한다.

이러한 자료구조의 중요성으로 말미암아, 최근의 프로그래밍 언어 및 개발 환경은 다양한 표준 라이브러리를 제공하고 있다. 예로, C++의 표준 템플릿 라이브러리나 자바의 자바 API, 마이크로소프트 .NET과 같은 것들을 들 수 있다.

자료구조에서 가장 기초적인 단위는 행렬, 레코드, 유니온, 참조와 같은 것이다. 예를 들어, Nullable 참조는 참조와 유니온의 조합으로 나타낼 수 있으며, 가장 단순한 자료구조 가운데 하나인 연결 리스트는 레코드와 Nullable 참조로 나타낼 수 있다.

분류 [ 편집 ]

자료의 특성과 크기, 주요 사용법과 수행하는 연산의 종류, 구현에 필요한 기억 공간 크기에 따라 여러 가지 종류의 자료구조 중 하나를 선택할 수 있다. 자료구조의 종류로는 자료형의 따라 분류하는 단순 구조와 자료 간 관계가 1 대 1인 선형 구조, 1 대 다 혹은 다 대 다 구조인 비선형 구조, 마지막으로 파일 구조가 있다.[5]

구현에 따라 [ 편집 ]

배열 – 가장 일반적인 구조이다. 메모리 상에 같은 타입의 자료가 연속적으로 저장된다. 자료값을 나타내는 가장 작은 단위가 자료를 다루는 단위이다.

튜플 – 둘 이상의 자료형을 묶음으로 다루는 구조이다.

연결 리스트 – 노드를 단위로 한다. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성되어 있다. 노드가 다음 노드로 아무것도 가리키지 않으면 리스트의 끝이다.

원형 연결 리스트 – 각 노드는 다음 노드를 가리키고, 마지막 노드가 처음 노드를 가리키는 연결 리스트이다.

이중 연결 리스트 – 각 노드는 이전 노드와 다음 노드를 가리키는 참조값으로 구성된다. 처음 노드의 이전 노드와 마지막 노드의 다음 노드는 없다.

환형 이중 연결 리스트 – 처음 노드가 이전 노드로 마지막 노드를 가리키고, 마지막 노드가 다음 노드로 처음 노드를 가리키는 이중 연결 리스트이다.

해시 테이블 – 개체가 해시값에 따라 인덱싱된다.

형태에 따라 [ 편집 ]

선형 구조

스택 – 스택 자료구조에 먼저 저장된 것이 꺼내어 쓸 때는 제일 나중에 나온다. 반대로, 가장 최근에 저장된 것이 꺼내어 쓸 때는 제일 먼저 나온다. 만약, 자료들의 나열 순서를 바꾸고 싶다면 스택에 집어 넣었다가 꺼내면 역순으로 바뀐다.

큐 – 스택과 반대로 큐 자료구조에 먼저 저장된 것이 제일 먼저 나온다. 반대로, 가장 나중에 저장된 것이 꺼내어 쓸 때는 가장 나중에 나온다. 환형 큐 – 한정된 길이 안에서 부수적인 작업 없이 읽고 쓰기를 할 수 있는 큐이다. 덱 – 양쪽에서 넣기와 빼기를 할 수 있는 일반화된 선형 구조이다.

비선형 구조

그래프 – 꼭짓점과 꼭짓점을 잇는 변으로 구성된다. 유향 그래프, 무향 그래프 – 변이 방향성을 갖는지 갖지 않는지에 따른 그래프의 분류이다.무향 그래프의 경우, 순환이 없는 연결 그래프를 뜻한다. 유향 그래프의 경우 변의 방향은 보통 부모를 가리키도록 구현된다. 트리 – 뿌리와, 뿌리 또는 다른 꼭짓점을 단 하나의 부모로 갖는 꼭짓점들로 이루어진 구조. 부모 자식 관계는 변으로 표현된다. * 이진 트리 – 자식이 최대 두 개인 트리. 힙 – 이진트리의 일종으로 이진트리에 어떤 특성을 부여한 것이라 할 수 있다.

같이 보기 [ 편집 ]

7가지 자료구조(Data Structure)의 종류와 각각의 장단점

자료구조(Data Structure)의 정의와 중요성

자료구조(Data Structure)란 컴퓨터 과학에서 데이터를 조직적으로 관리하여 구조적으로 표현하는 방식과 이를 구현하는데 필요한 기능을 가능하게 하는 기술이다. 보다 구체적으로 설명하자면, 자료구조는 데이터 값의 집합과 각 데이터의 관계, 데이터에 적용시킬 수 있는 함수나 명령이 포함되어 있는 것이다. 잘 짜인 자료구조는 메모리 용량을 최소한으로 사용하게 할 수 있고 실행시간을 단축시킴으로써 보다 효율적인 알고리즘을 실행할 수 있는 데에 도움을 준다. 어떤 프로그램을 설계하는지에 상관없이 자료구조를 선택하는 것은 가장 우선적으로 고려되어야 할 내용이고 매우 중요하다. 큰 프로젝트를 만드는 경우 최종 결과물의 성능이나 구현의 어려움 등이 자료구조에 크게 의존하기 때문이다. 자료구조가 우선적으로 선정되고 나면 해당 프로젝트에 적용될 알고리즘은 보다 명확해진다. 이런 관점에서 기존의 정형화된 개발론에서 알고리즘이 자료구조보다 중요한 요소라는 상식을 뒤집었고, 자료구조가 알고리즘보다 중요한 요소로 적용되는 개발론과 프로그래밍 언어의 개발이 가속화되고 있다. 자료구조를 통해 대규모의 데이터를 쉽게 관리하고 활용하는 데 있어 어려움이 줄어든다. 또한 데이터베이스에서 원하는 데이터를 찾기도 쉬워진다. 개발자는 사용자의 요구사항에 알맞은, 개발하고자 하는 프로그램에 필요한 맞춤 알고리즘을 설계할 수 있다. 또한 동시에 사용자들이 요구하는 여러 요청사항을 한 번에 처리하여 데이터 처리속도를 향상하고 처리과정도 단순화할 수 있다.

7가지 자료구조(Data Structure)

첫째로, 배열(Array)은 가장 기본적인 데이터 구조이다. 배열은 생성되는 순간 설정되는 셀에 인덱스가 부여되고 해당 셀의 개수는 고정된다. 이때 부여된 인덱스를 통해 원하는 데이터에 접근할 수 있다. 배열은 바로 만들어서 활용하기가 쉽고 원하는 데이터를 효율적으로 검색하여 가져오는 게 가능하다. 배열을 기반으로 하여 더 복잡한 자료 구조를 만들 수 있으며 정렬이 용이하다는 장점이 있다. 그러나 생성될 때 셀의 개수가 고정되므로 데이터를 저장할 수 있는 메모리의 크기가 고정되어 있고 데이터를 추가, 삭제하는 과정이 비효율적이다. 데이터가 삭제되고 나면 남는 셀은 빈 공간이 되므로 메모리의 낭비가 심하다.

두 번째로 연속 리스트(Contiguous List)는 배열처럼 연속적인 기억 장소에 데이터가 저장되는 자료구조이다. 연속적으로 데이터가 저장되어 있어 검색에는 용이하지만, 데이터의 삽입이나 삭제는 용이하지 않다. 삽입과 삭제가 일어나는 경우 자료의 이동이 필요하다는 번거로움이 있기 때문이다.

세 번째로 연결 리스트(Linked List)는 데이터를 임의의 기억공간에 기억시키되, 데이터 항목의 순서에 따라 노드의 포인터를 이요하여 서로 연결시킨 자료구조이다. 새로운 데이터를 추가하고 삭제하는 것이 용이하고 효율적이다. 배열처럼 메모리에 연속적으로 위치하지 않고 구조의 재구성이 필요 없다. 메모리를 더 효율적으로 사용할 수 있기 때문에 대용량의 데이터의 처리에 적합하다. 하지만 연결이 끊어지면 다음 노드를 찾기가 어렵고 속도가 느리다는 단점이 있다.

네 번째로 스택(Stack)은 순서가 유지되는 선형 데이터 구조이다. 리스트의 한쪽에서만 데이터의 삽입과 삭제가 일어나므로, 가장 마지막 요소부터 가장 처음 요소를 처리하는 LIFO(Last In First Out) 메커니즘을 갖고 있다. 기억공간이 부족한 경우 데이터를 삽입하는 경우 오버플로(Overflow)가 발생하고 삭제할 데이터가 없을 때 데이터를 삭제하고자 하면 언더 플로(Underflow)가 발생한다. 데이터를 받는 순서대로 정렬되고 메모리의 크기가 동적이지만 한 번에 하나의 데이터만 처리할 수 있는 불편함이 있다.

다섯 번째로 큐(Queue)는 스택과 비슷하지만 먼저 입력된 요소를 먼저 처리하는 FIFO(First In First Out) 메커니즘을 가진다. 리스트의 한쪽에서는 삽입이 일어나고 다른 쪽에서는 삭제가 일어난다. 데이터의 시작 부분을 프런트(Front)라 하고 끝 부분은 리어(Rear)라고 한다. 동적인 메모리 크기와 빠른 런타임을 자랑하지만 가장 오래된 요소만을 가져오고 한 번에 하나의 데이터만 처리하는 단점이 있다.

여섯 번째로 그래프(Graph)는 정점(Vertex)과 간선(Edge)으로 이루어진 데이터 구조이며 사이클이 없는 그래프를 특별히 트리라고 한다. 방향 그래프와 무방향 그래프가 있다. 새로운 요소들의 추가나 삭제가 용이하고 구조를 응용하기에 적합하다. 하지만 데이터 간에 충돌이 일어날 수 있다는 단점도 있다.

마지막으로 트리(Tree)는 노드(Node)로 구성된 계층적인 자료구조이다. 최상위 노드(루트, Root)를 만들고 그 아래에 자식을 추가하는 방식으로 트리구조는 다양하게 구현할 수 있다. 노드와 노드를 잇는 선을 간선(Edge)이라 한다. 같은 부모(Parent) 노드를 가지며 같은 레벨에 있는 노드를 형제(Siblings) 노드라 하고 자식이 없는 노드를 단말(Terminal) 노드라고 한다.

[DS] 자료구조 개념 및 종류

1. 자료구조란?

자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미한다. 더 정확히 말해, 자료 구조는 데이터 값의 모임, 또 데이터 간의 관계, 그리고 데이터에 적용할 수 있는 함수나 명령을 의미한다. 신중히 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 한다. 이러한 자료구조의 선택문제는 대개 추상 자료형의 선택으로부터 시작하는 경우가 많다. 효과적으로 설계된 자료구조는 실행시간 혹은 메모리 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다.

대부분의 언어는 일정 수준의 모듈 개념을 가지고 있으며, 이는 자료구조가 검증된 구현은 감춘 채 인터페이스만을 이용하여 다양한 프로그램에서 사용되는 것을 가능하게 해준다.

2. 자료구조의 종류

자료의 특성과 크기, 주요 사용법과 수행하는 연산의 종류, 구현에 필요한 기억 공간 크기에 따라 여러 가지 종류의 자료구조 중 하나를 선택할 수 있다. 자료구조의 종류로는 자료형의 따라 분류하는 단순 구조와 자료 간 관계가 1 대 1인 선형 구조, 1 대 다 혹은 다 대 다 구조인 비선형 구조, 마지막으로 파일 구조가 있다.

1) 선형 구조

Array

가장 일반적인 구조이다. 메모리 상에 같은 타입의 자료가 연속적으로 저장된다. 자료값을 나타내는 가장 작은 단위가 자료를 다루는 단위이다.

LinkedList

노드를 단위로 한다. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성되어 있다. 노드가 다음 노드로 아무것도 가리키지 않으면 리스트의 끝이다.

Stack

스택 자료구조에 먼저 저장된 것이 꺼내어 쓸 때는 제일 나중에 나온다. 반대로, 가장 최근에 저장된 것이 꺼내어 쓸 때는 제일 먼저 나온다. 만약, 자료들의 나열 순서를 바꾸고 싶다면 스택에 집어 넣었다가 꺼내면 역순으로 바뀐다.

Queue

스택과 반대로 큐 자료구조에 먼저 저장된 것이 제일 먼저 나온다. 반대로, 가장 나중에 저장된 것이 꺼내어 쓸 때는 가장 나중에 나온다.

Deque

양쪽에서 넣기와 빼기를 할 수 있는 일반화된 선형 구조이다.

Hash

해시 테이블(hash table), 해시 맵(hash map), 해시 표는 컴퓨팅에서 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조이다. 해시 테이블은 해시 함수를 사용하여 색인(index)을 버킷(bucket)이나 슬롯(slot)의 배열로 계산한다.

기본적으로 선형 구조로 구현되지만, collision 등의 문제를 해결하기 위해서 구현에 따라서 비선형 구조로 구현되기도 한다.

2) 비선형 구조

Graph

꼭짓점과 꼭짓점을 잇는 변으로 구성된다.

Directed / Undirected

변이 방향성을 갖는지 갖지 않는지에 따른 그래프의 분류이다.무향 그래프의 경우, 순환이 없는 연결 그래프를 뜻한다. 유향 그래프의 경우 변의 방향은 보통 부모를 가리키도록 구현된다.

Tree

뿌리와, 뿌리 또는 다른 꼭짓점을 단 하나의 부모로 갖는 꼭짓점들로 이루어진 구조. 부모 자식 관계는 변으로 표현된다.

– Binary Tree

자식이 최대 두 개인 트리.

– Heap

이진트리의 일종으로 이진트리에 어떤 특성을 부여한 것이라 할 수 있다.

[reference]

– https://ko.wikipedia.org/wiki/자료_구조

– https://terms.naver.com/entry.naver?docId=2073345&cid=44414&categoryId=44414

반응형

자료구조- 자료구조 종류를 알아보자

자료구조 종류는 아래와 같다

하나씩 살펴보는 시간을 가지도록 하자

교수님… 왜 더 중요하다고 알려주시지 않으셨나요

** 나무위키와 파이썬 알고리즘 인터뷰를 참고 하였다 **

1. 단순 구조 우리가 흔히 말하는 데이터 타입 또는 자료형이 여기에 해당된다 나는 Python 같이 자료형에 유연한 언어를 사용할 때 가장 적응 안되는게 자료형이었다 C나 C++은 자료형에 엄하다 자료형의 종류는 링크를 통해 보면 좋을 것 같다 자료형 범위나 크기 같은 상세 부분은 다른 게시물로 정리하겠다

2. 선형구조

선형구조는 위에 그림에서 본 것처럼 리스트, 스택, 큐, 덱 등으로 구성된다

그림에는 없지만 배열도 포함됨 ㅇㅇ

리스트는 선형 리스트(Linear List)와 연결 리스트 (Linked List)가 있다

선형 구조는 자료를 구성하는 데이터가

순차적으로 나열되어 있는 형태여서 선형이라고 불린다

선형구조

(1) 배열 (Array)

배열은 인덱스(index)를 가진 원소들이 순차적으로 나열되어 있는 자료구조이다

인덱스를 가졌다는 것은 위 그림처럼 0, 1, 2… 이렇게

번호가 붙어져 있는 것을 의미한다

그래서 각 원소에 접근하는데 드는 시간은 O(1)이라고 설명된다

시간 복잡도

– 원소 접근 → O(1)

– 원소 찾을 때 드는 시간 → O(1)

– 원소 대입시 위치 찾아야 하니까 → O(1)

– 원소 삭제 시 → O(n)

(삭제 후 배열 길이가 하나 줄어서 다 한 번씩 이동하니까)

** 참고 **

시간 복잡도의 O 표기

O는 점근 표기법이라고 해서 함수의 증가하는 모양을 비교하는 표기 법이다

큰 O-표기법 (Big O 표기법) 또는 란다우 표기법(Landau)으로 부르기도 한다

시간 복잡도에 대해서는 다른 게시물로 다시 정리하겠다

배열은 인덱스를 통해 array[3] 이렇게 원하는 위치에 접근할 수 있다

메모리 주소가 연속되기 때문에, 배열을 크기를 늘리는 건 할 수 없다

정의한 크기만큼 사용 가능하단 얘기 ㅇㅇ

자료구조 malloc으로 메모리 할당받는 걸 싫어해서

배열은 정말 자주 쓰는 듯.

(2) 리스트 (List)

리스트는 어떤 순서를 가지고 원소들이 일렬로 쭈욱 나열한 형태의 자료구조이다

리스트도 각 원소에 번호를 붙일 수도 있고

원소를 찾을 수 있는 연산도 구현 가능하다

(그래서 배열을 리스트에 포함시키기도 한다)

가장 많이 쓰는 종류는 연결 리스트이다

연결리스트 ㅋ

말 그대로 연결이 되어 있는 모양이어서

각 node(그림에서 직육면체 것들)들이 다음 node의 주소를 알고 있고

그 주소를 통해 데이터를 삽입/삭제하는 것이 가능하다

내가 제일 많이 쓰는 경우는 각 node에 기억해야 할 key와 value를 저장하고

(예를 들어 사람 주민번호 같은 key랄까?)

그 key로 해당 value를 찾을 때 쓴다

C++은 iterator 개념이 있지만 C는 그런 게 없어서 직접 구현하다 보니

core가 참 많이 난다 ㅎㅎ

시간 복잡도

– node 검색 → O(1) 또는 O(n)

(바로 찾으면 이득인데 끝까지 다 찾게 되면 n 시간임)

– node 삽입 → O(1)

– node 삭제 → O(1)

* O(1)가 한번 걸리는 속도라는 의미는 아님. 상수를 뜻하는 것일 뿐

(3) 스택 (Stack)

스택은 한 번쯤 들어봤을 LIFO(Last In First Out)를 가지는 자료구조이다

나중에 온 놈이 먼저 나간다~

(큐는 선입선출인 FIFO이다)

스택 모양 자체는 데이터가 쌓여있는 모양이다

스택 구조

리스트에서 노드를 추가/검색/출력/삭제 하듯이, 스택도 입력 연산이 있는데,

추가 개념을 Push, 출력 개념을 Pop 이라고 부른다

맨 위의 데이터 조회 연산은 Peek라고 한다… 피크는 처음 알았다;;

구현할 때 index 관리에 대해서만 잘하면 다른 자료형에 비해

쉽다고 하니, 연결 리스트와 비교한 그림만 보고 넘어가도록 하겠다

시간 복잡도

– Push → O(1)

– Pop → O(1)

– Peek → O(n)

** 참고 **

Stack Overflow (스택 오버플로우)

스택 포인터가 스택의 경계를 넘어설 때 일어나는 현상?으로

(4) 큐 (Queue)

큐는 내가 제일 좋아하는 자료구조다

얘가 떠오른달까

위에서 스택은 후입선출인 LIFO라고 언급하였다

큐는 그 반대인 선입선출인 FIFO (First In First Out) 개념이다

먼저 온 놈이 먼저 나간다~

(큐 영어 뜻은 표를 사러 일렬로 늘어선 사람들로 이루어진 줄이라고 한다)

스택에서는 Push/Pop/Peek 개념이 있다고 했다

큐는 Put(Insert)/Get(Delete) 연산이 사용된다

또한 큐에서 데이터가 나가고 들어가고 하는 걸

Enqueue/Dequeue 라고 부른다

헤이 레디 큐

바로 요렇게..!

먼저 들어온 친구를 Front, 마지막에 들어온 친구를 Back이라고 표현한다

FIFO니까 먼저 들어온 Front가 먼저 Dequeue 된다

시간 복잡도

– Push → O(1)

– Pop → O(1)

– Search → O(n)

큐는 맨 앞에 애가 나가면 앞에 자리가 비어서 정렬을 다시 해줘야 함…

그래서 나온 거 방식이 원형 큐이다

원형 큐

말 그대로 원형으로 된 큐이다

원형 큐 (링크로 이동 가능하니 크게 보세요)

원형 큐에는 Front 와 Back 용어 대신 Front와 Rear라는 용어가 사용된다

Front → 값이 있는 가장 첫 번째 위치 (무조건 0이어서 front가 아님)

Rear (후방) → 값이 있는 가장 마지막 위치

처음 시작 위치는 front와 rear가 같은 값을 갖는다

그리고 그다음에 들어온 친구가 있으면 rear 값을 +1 시킨다

큐는 가장 먼저 들어온 친구가 먼저 나가기 때문에

deQueue가 되면 front에 있는 값이 나간다

그러면 front 값을 +1 시키면 됨ㅋ

이런 식으로 마치 빙빙 돌면서 큐 배열을 사용하기 때문에 원형 큐라고 한다

기본 큐 (선형 큐)를 보완하기 위한 방식이다

(5) 덱 (Deque)

덱은 큐와 다르게 front와 back 둘 다에서 삭제와 삽입이 가능한 자료구조이다

메모리 크기가 가변적이고, 중간중간 삽입/삭제도 쌉파써블

( 앞/뒤 보다 중간 노드 연산은 성능이 안 좋음 )

얘는 그림만 첨부하고 정리를 마치겠다

시간 복잡도

– Push → O(1)

– Pop → O(1)

– Search → O(1)

3. 비선형 구조

비선형 구조는 일렬로 나열하기가 어렵고, 자료의 순서가 불규칙해서

자료를 연결하기 복잡한 구조를 뜻한다

대표적으로 트리와 그래프가 있다

자료구조 공부할 때 여기서부터 공부 안 했던 기억이 난다

이제 알면 되는 거지 ^^7

(1) 트리

트리는 위에 첨부한 비선형 구조의 그림과 같은 모양을 가진다

나무처럼 가지를 뻗은 모양이 연상돼서 트리라고 부르는 듯

나무를 뒤집어 놓은 모양이랄까!?

파이썬 알고리즘 인터뷰 사랑합니다

트리에는 용어 정리가 조금 많이 필요하다

노드(node): 트리를 구성하는 기본이 되는 친구 (다른 자료구조의 그 노드 맞습니다)

루트 노드(root node/root): 뿌리(?). 부모가 없는 최상위 노드임

부모 노드(parent node): 루트에 직접 연결되어 있는 노드

자식 노드(child node): 부모 노드에 붙어 있는 노드

형제 노드(siblings node): 같은 부모 노드를 바라보는 노드들

리프 (leaf) 혹은 단말(terminal) 노드: 잎. 차수가 1인 노드. 제일 끝 노드다

링크(link): 노드를 연결하는 선. Edge 또는 branch라고 부름. 간선

경로(path): 한 노드에서 다른 한 노드에 이르는 길 사이에 있는 노드들의 순서

길이(length): 출발 노드에서 도착 노드까지 거치는 노드의 개수

깊이(depth): [루트 노드 – 현재 노드]까지의 거리

레벨(level): 0부터 시작하는 링크의 단계

높이(height): [루트 노드 – 리프 노드] 까지의 거리

차수(degree): 각 노드의 자식의 개수[5]

트리의 차수(degree of tree): 트리의 최대 차수 = max[deg1, deg2, …, degn]

크기(size): 노드의 전체 개수

너비(width): 가장 많은 노드를 갖고 있는 레벨의 크기

또한 이진트리(Binary Tree)와 이진 탐색 트리(Binary Search Tree) 등의 여러 종류가 있다

정리하려고 보니 종류가 생각보다 다양해서 요것도 따로 정리하는 걸로

(2) 그래프

그래프는 트리와 비슷하게 노드와 엣지로 구성되는데

부모/자식 관계로 계층이 이루어진 게 아니라

노드와 노드들끼리 연결되어 구성되는 자료구조이다

흔히 알고 있는 차트 형식의 그래프도 그래프 맞습니다

다만 컴퓨터가 알아먹을 그래프로 바꾼 것뿐

노드들 사이에는 방향/무방향 경로를 가질 수 있어서

그래프 종류도 방향 그래프와 무방향 그래프가 있다

좌: 방향 그래프, 우: 무방향 그래프

바로 요렇게…

방향 그래프

간선에 방향성이 존재하는 그래프 (화살표로 표현됨)

A → B를 연결하는 간선은 (A, B)로 표기

무방향 그래프

양방향으로 간선을 통해 갈 수 있는 그래프

A와 B를 연결하는 간선은 (A, B)와 (B, A)로 표기

또한 그래프에는 트리 용어에 이어서 추가된 용어가 있다

정점(vertext): 그래프에서 위치를 나타냄

인접 정점(adjacent vertex): 엣지에 직접 연결된 정점

사이클(cycle): 한 정점에서 시작~다시 도착해서 돌아오는 경로

입력 차수(in-degree): 정점에 들어오는 간선의 수

출력 차수(in-degree): 정점에서 나가는 간선의 수

그리고 그래프에서는 꼭 알아야 할 개념이 두 가지가 있다

A. 인접 행렬 (Adjacency Matrix)

→ Edge 추가 삭제가 빈번할 때 사용하는 게 좋음

그래프는 위 그림처럼 배열로 표현될 수 있다

행렬은 0과 1로 표현할 수 있지 않갔습니까?

그래서 엣지가 존재하는 노드면 배열로 (0, 1) 이런 식으로

쓸 수 있다 이말이다

엣지로 연결되어 있지 않은 (예를 들어 (0, 2))는 행렬에 0으로 표기 ㅇㅇ

배열로 만들어 모든 정보를 알고 있는 건 장점이지만

항상 n^2의 2차원 배열의 크기가 잡히니까 공간 낭비가 있을 수도

전에 CNN 공부했을 때 가중치 그래프 용어가 잠깐 나왔었는데

이제 이해가 가는구나…

시간 복잡도

(N은 노드 개수, E는 Edge의 전체 개수)

– Node 추가 → O(N^2)

– Node 삭제 → O(N^2)

– Edge 추가 → O(1)

– Edge 삭제 → O(1)

특정 셀만 변경하면 상수 시간인데, 노드 추가/삭제하니까

모든 셀 다 채워줘야 해서 오래걸려버림…이크

B. 인접 리스트 (Adjacency List)

→ Node 추가 삭제가 빈번할 때 사용하는 게 좋음

인접 리스트는 말 그대로 리스트로 표현한 거다

각 노드들은 헤더 노드로 표현할 수 있고, 정점의 개수만큼 리스트는 존재한다

존재하는 간선만 관리할 수 있어서 행렬보다는 메모리면에서 효율적임

근데 두 정점을 연결하는 간선 조회나 차수를 구하려면 리스트 탐색을 해야 해서

쪼끔 오래 걸릴 수됴

(일단 구현이 어려움)

시간 복잡도

(N은 노드 개수, E는 Edge의 전체 개수)

– 노드 추가 → O(1)

– 노드 삭제 → O(N+E)

(노드 삭제하면 삭제된 공간을 다시 채워줘야 하니까 이만큼)

– 엣지 추가 → O(1)

– 엣지 삭제 → O(E)

(한 줄로 다 연결이 되어 있으면 다 뒤져야 함)

4. 파일 구조

파일 구조는 컴터 보조기억 장치에 저장되는 파일의 자료구조이다

파일에 저장하는 방식이다

[ 출처 ]

https://namu.wiki/w/%EB%B0%B0%EC%97%B4

https://www.onlybook.co.kr/entry/algorithm-interview

[자료구조] 자료구조의 정의

자료구조

자료구조의 정의

자료구조는 문제 해결을 위해 데이터를 조직화하고 저장하는 것과

이를 구현하는 데 필요한 알고리즘에 대해 논하는 기초이론이다.

자료구조는 CS(컴퓨터 사이언스)에서 알고리즘과 함께 가장 중요한 기초이론이다.

알고리즘에서 효과적으로 접근, 변경, 처리가 가능하도록 만들어진 데이터 체계이기 때문이다.

자료구조는 데이터를 효율적으로 사용하기 위한 것으로 연산의 다양성 및 효율성 등을 제고하여

사칙연산 외에도 읽기, 삽입, 삭제, 비교, 교환 등 다양한 연산의 사용을 고려해야 한다.

추상 자료형과 자료구조

자료에 대해 처리를 어떻게 할지 자료와 동작을 함께 고려하면서,

컴퓨터에 효과적으로 표혀느 저장, 처리하는 기술 그리고 캡슐화 하는 것을 추상 자료형이라고 한다.

추상 자료형은 문제를 해결하는데 필요한 자료의 형태와 필요한 연산들을 수학적으로 정의한 것이고

자료구조는 추상 자료형이 정의한 연산들을 구현시킨 구현체를 가리키는 말인 것이다.

자료구조의 종류

기본적인 자료구조로는 자료형을 뜻하는 단순구조가 있다.

자료 간의 연결 형태 혹은 모양에 따른 구분으로는

‘선형 자료구조’와 ‘비선형 자료구조’로 구분이 가능하다.

이 외에도 파일구조라는 구조형이 있다.

<자료구조의 종류>

단순구조(Simple Structure)

단순구조는 앞서 말한대로 자료형을 뜻한다.

정수(Integer), 실수(Real Number), 문자(Character), 문자열(String)이 해당하며

이 외의 자료형들도 단순구조에 포함된다.

선형 자료구조(Linear Data Structure)

선형 자료구조는 하나의 자료 뒤에 하나의 자료가 존재하는 것으로

자료들 간의 앞뒤 관계가 선형 관계를 이루고 있는 것이라 할 수 있다.

선형 자료구조의 대표적인 예로는 배열과 리스트가 있다.

그 외에도 스택과 큐, 데크가 선형 자료구조에 해당한다.

비선형 자료구조(NonLinear Data Structure)

비선형 자료구조는 계층구조나 망구조를 갖는 자료구조로

트리와 그래프가 대표적인 비선형 자료구조이다.

그래프는 주로 네트워크 모델에 사용되는 형태로

노드들 사이에서 무방향/방향/양방향 경로를 가질 수 있다.

그렇기 때문에 루트 노드, 부모-자식 관계의 개념이 없다.

트리는 그래프에서도 특별한 케이스로 최소 연결 트리라고도 한다.

두 개의 정점 사이에 반드시 1개의 경로만을 가지는 것이 특징이다.

※선형 구조와 비선형 구조의 차이

선형 자료구조와 비선형 자료구조의 차이점은 구성형태와 용도차이이다.

먼저 선형구조는 하나의 자료 뒤에 하나의 자료만 존재하는 형태로

자료와 자료가 1:1 관계를 이루는 것이 특징이다.

비선형 구조는 하나의 자료 뒤에 여러개의 자료가 존재하는 형태로

자료들 간의 앞뒤 관계가 1:다 혹은 다:다의 관계를 이루고 있다.

그리고 선형구조 자료를 저장하고 꺼내는 것이 중점이라면

비선형 구조는 디렉토리, 네트워크와 같이 표현에 초점이 맞춰져 있다.

파일구조(File structure)

파일 구조는 데이터를 효율적으로 이용할 수 있도록 파일에 저장하는 방법이다.

파일 구조의 설계 목표는 빠른 메모리 접근에 비해 느린 디스크 접근을 최소화 하는 것이다.

파일 구조에는 힙 파일 구조, 순차적 파일구조, 색인 파일구조, 직접 파일구조 등이 있다.

키워드에 대한 정보 자료 구조 종류

다음은 Bing에서 자료 구조 종류 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 개발자라면 무조건 알아야하는 자료구조! 5분컷.

  • 코딩
  • 프로그래밍

개발자라면 #무조건 #알아야하는 #자료구조! #5분컷.


YouTube에서 자료 구조 종류 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 개발자라면 무조건 알아야하는 자료구조! 5분컷. | 자료 구조 종류, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  전기 기능사 필기 합격률 | 전기기능사에 대해서 잘 모르고 있는 7가지 사실! 32 개의 정답

Leave a Reply

Your email address will not be published. Required fields are marked *