학습 추천을 위한 레벨 테스트
신입 SW 역량테스트란?
상시 SW 역량테스트 접수하기
About
Code
Problem Solving
매주 제공되는 난이도별 SW 연습문제에
도전하세요. 실질적인 SW 문제해결
역량을 키울 수 있습니다.
Learn
Intensive Study
프로그래밍 역량강화를 위한
필수 이론 및 지식을 개인 역량에 따라
스스로 학습할 수 있도록 다양한 유형의
학습 컨텐츠를 제공합니다.
Talk
Social Learning
함께 코드를 리뷰하고 토론하세요.
서로 소통하며 협업하는 가운데
모두의 실력이 향상됩니다.
SWEA란
포인트와 랭킹
학습 가이드
Problem
Contest Problem
User Problem
Code Battle
Course
Reference Code
Visual Ref. Code
Solving Talk
Solving Club
CODE
Code
Problem Solving
매주 제공되는 난이도별 SW 연습문제에
도전하세요. 실질적인 SW 문제해결
역량을 키울 수 있습니다.
Learn
Intensive Study
프로그래밍 역량강화를 위한
필수 이론 및 지식을 개인 역량에 따라
스스로 학습할 수 있도록 다양한 유형의
학습 컨텐츠를 제공합니다.
Talk
Social Learning
함께 코드를 리뷰하고 토론하세요.
서로 소통하며 협업하는 가운데
모두의 실력이 향상됩니다.
SWEA란
포인트와 랭킹
학습 가이드
Problem
Contest Problem
User Problem
Code Battle
Course
Reference Code
Visual Ref. Code
Solving Talk
Solving Club
LEARN
Learn
Intensive Study
프로그래밍 역량강화를 위한
필수 이론 및 지식을 개인 역량에 따라
스스로 학습할 수 있도록 다양한 유형의
학습 컨텐츠를 제공합니다.
Code
Problem Solving
매주 제공되는 난이도별 SW 연습문제에
도전하세요. 실질적인 SW 문제해결
역량을 키울 수 있습니다.
Talk
Social Learning
함께 코드를 리뷰하고 토론하세요.
서로 소통하며 협업하는 가운데
모두의 실력이 향상됩니다.
SWEA란
포인트와 랭킹
학습 가이드
Problem
Contest Problem
User Problem
Code Battle
Course
Reference Code
Visual Ref. Code
Solving Talk
Solving Club
TALK
Code
Problem Solving
매주 제공되는 난이도별 SW 연습문제에
도전하세요. 실질적인 SW 문제해결
역량을 키울 수 있습니다.
Learn
Intensive Study
프로그래밍 역량강화를 위한
필수 이론 및 지식을 개인 역량에 따라
스스로 학습할 수 있도록 다양한 유형의
학습 컨텐츠를 제공합니다.
Talk
Social Learning
함께 코드를 리뷰하고 토론하세요.
서로 소통하며 협업하는 가운데
모두의 실력이 향상됩니다.
SWEA란
포인트와 랭킹
학습 가이드
Problem
Contest Problem
User Problem
Code Battle
Course
Reference Code
Visual Ref. Code
Solving Talk
Solving Club
로그인
회원가입
학습 추천을 위한
레벨 테스트
신입 SW
역량테스트란?
상시 SW 역량테스트
접수하기
통합검색
삭제
검색
통합검색 닫기
Course
Reference Code
HOME
Learn
Reference Code
문제풀이에 활용할 수 있는 주요 Data Structure, Algorithm에 대한 Reference code를 제시합니다.
전체
Data Structure
Algorithm
Stack
Data Structure
Stack은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)로 데이터를 저장하는 형식을 말한다.
Recursion
Algorithm
재귀는 수학이나 컴퓨터 과학 등에서 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻한다. 주로 이 방법은 함수에 적용한 재귀 함수(Recursion Function)의 형태로 많이 사용된다.
Queue
Data Structure
Queue는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다.
Priority Queue
Data Structure
Priority Queue는 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리되는 자료구조이다.
Hash
Data Structure
Hash table은 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조이다. Hash table은 Hash 함수를 사용하여 색인(index, Key)을 버킷(bucket)이나 슬롯(slot)의 배열로 계산한다.
Tree
Data Structure
트리 구조란 그래프의 일종으로, 여러 노드가 한 노드를 가리킬 수 없는 구조이다. 간단하게는 회로가 없고, 서로 다른 두 노드를 잇는 길이 하나뿐인 그래프를 트리라고 부른다.
Graph
Data Structure
컴퓨터 시스템에 그래프는 연결되어 있는 객체간의 관계를 표현할 수 있는 자료구조다.
Linked List
Data Structure
Linked List는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다.
Insertion Sort
Algorithm
삽입 정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.
Quick Sort
Algorithm
퀵 정렬은 기준키(pivot)를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법이다.
Counting Sort
Algorithm
계수정렬(counting sort)는 항목들의 순서를 결정하기 위해 집합에 각 항목이 몇 개씩 있는지 세는 작업을 하면서 정렬하는 알고리즘이다
Binary Search
Algorithm
이진 검색 알고리즘(binary search algorithm)은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이며, 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식을 채택하고 있다. 처음 선택한 중앙값이 만약 찾는 값보다 크면 그 값은 새로운 최고값이 되며, 작으면 그 값은 새로운 최하값이 된다.
DFS Searching
Algorithm
깊이 우선 탐색은 맹목적 탐색방법의 하나로 한 노드를 시작으로 인접한 다른 노드를 재귀적으로 탐색해가고 끝까지 탐색하면 다시 위로 와서 다음을 탐색하여 검색한다.
BFS Searching
Algorithm
너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다.
Parametric Search
Algorithm
parametric search는 어떤 알고리즘으로 해를 바로 구해내는 것이 아니고, 임의의 값을 던지고 맞는지 확인해가며 해를 구하는 방법이다.
Dynamic Programming
Algorithm
동적 계획법(Dynamic programming)은 복잡한 문제를 풀기위해서 간단한 여러 개의 하위 문제로 나누어 푼 다음, 그것을 결합하여 목적에 도달하는 방법이다.
Permutation & Combination
Algorithm
순열조합(permutation combination), 순열은 순서가 부여된 임의의 집합을 다른 순서로 뒤섞는 연산이며, 조합은 집합에서 일부 원소를 취해 부분 집합을 만드는 방법을 말한다.
Dijkstra
Algorithm
다익스트라 알고리즘은 어떤 변도 음수 가중치를 갖지 않는 유향 그래프에서 주어진 출발점과 도착점 사이의 최단 경로 문제를 푸는 알고리즘이다
Deque
Data Structure
Deque는 Queue의 일반화 된 버전으로 Queue의 양 끝에서 데이터의 삽입/삭제가 가능하게끔 만든 자료구조이다.
Map
Data Structure
Map 은 키를 값에 매핑할 수 있는 자료구조로 키에 대한 중복을 허용하지 않는다. 입력으로 주어진 N개의 Command 를 수행하는 프로그램을 작성하라.
Set
Data Structure
Set 은 집합을 정의하며 요소의 중복을 허용하지 않는 자료구조이다.
Floyd Warshall
Algorithm
플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 그래프에서 모든 꼭짓점 사이의 최단 경로의 거리를 구하는 알고리즘이다. 제일 바깥쪽 반복문은 거쳐가는 꼭짓점이고, 두 번째 반복문은 출발하는 꼭짓점, 세 번째 반복문은 도착하는 꼭짓점이다.
Plane sweeping
Algorithm
Plane sweeping은 여러 개의 직사각형이 주어졌을 때, 총 넓이를 구하는 알고리즘이다.
minimum spanning tree
Algorithm
최소비용 신장트리(minimum spanning tree)는 네트워크(가중치가 간선에 할당된 그래프)에 있는 모든 정점들을 가장 적은 비용으로 연결하는 트리를 말한다.
topological sorting
Algorithm
위상 정렬(topological sorting)은 유향 그래프의 정점(vertex)을 간선의 방향을 거스르지 않도록 나열하는 것을 의미한다.
Maximum flow
Algorithm
Network flow란 각각의 간선에 정해진 용량보다 작은 유량이 주어진 방향그래프를 말하며, Maximum flow란 위 수원지(S)에서 수요지(T)까지 공급할 수 있는 최대 유량을 말한다.
Bipartite Match
Algorithm
그래프의 최대 이분 매칭은 두 간선이 같은 정점을 공유하지 않는 간선의 최대 집합을 말한다.
Stack
Data Structure
Stack은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조(LIFO - Last In First Out)로 데이터를 저장하는 형식을 말한다.
Queue
Data Structure
Queue는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다.
Priority Queue
Data Structure
Priority Queue는 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리되는 자료구조이다.
Hash
Data Structure
Hash table은 키를 값에 매핑할 수 있는 구조인, 연관 배열 추가에 사용되는 자료 구조이다. Hash table은 Hash 함수를 사용하여 색인(index, Key)을 버킷(bucket)이나 슬롯(slot)의 배열로 계산한다.
Tree
Data Structure
트리 구조란 그래프의 일종으로, 여러 노드가 한 노드를 가리킬 수 없는 구조이다. 간단하게는 회로가 없고, 서로 다른 두 노드를 잇는 길이 하나뿐인 그래프를 트리라고 부른다.
Graph
Data Structure
컴퓨터 시스템에 그래프는 연결되어 있는 객체간의 관계를 표현할 수 있는 자료구조다.
Linked List
Data Structure
Linked List는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다.
Deque
Data Structure
Deque는 Queue의 일반화 된 버전으로 Queue의 양 끝에서 데이터의 삽입/삭제가 가능하게끔 만든 자료구조이다.
Map
Data Structure
Map 은 키를 값에 매핑할 수 있는 자료구조로 키에 대한 중복을 허용하지 않는다. 입력으로 주어진 N개의 Command 를 수행하는 프로그램을 작성하라.
Set
Data Structure
Set 은 집합을 정의하며 요소의 중복을 허용하지 않는 자료구조이다.
Recursion
Algorithm
재귀는 수학이나 컴퓨터 과학 등에서 자신을 정의할 때 자기 자신을 재참조하는 방법을 뜻한다. 주로 이 방법은 함수에 적용한 재귀 함수(Recursion Function)의 형태로 많이 사용된다.
Insertion Sort
Algorithm
삽입 정렬은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다.
Quick Sort
Algorithm
퀵 정렬은 기준키(pivot)를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법이다.
Counting Sort
Algorithm
계수정렬(counting sort)는 항목들의 순서를 결정하기 위해 집합에 각 항목이 몇 개씩 있는지 세는 작업을 하면서 정렬하는 알고리즘이다
Binary Search
Algorithm
이진 검색 알고리즘(binary search algorithm)은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이며, 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식을 채택하고 있다. 처음 선택한 중앙값이 만약 찾는 값보다 크면 그 값은 새로운 최고값이 되며, 작으면 그 값은 새로운 최하값이 된다.
DFS Searching
Algorithm
깊이 우선 탐색은 맹목적 탐색방법의 하나로 한 노드를 시작으로 인접한 다른 노드를 재귀적으로 탐색해가고 끝까지 탐색하면 다시 위로 와서 다음을 탐색하여 검색한다.
BFS Searching
Algorithm
너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다.
Parametric Search
Algorithm
parametric search는 어떤 알고리즘으로 해를 바로 구해내는 것이 아니고, 임의의 값을 던지고 맞는지 확인해가며 해를 구하는 방법이다.
Dynamic Programming
Algorithm
동적 계획법(Dynamic programming)은 복잡한 문제를 풀기위해서 간단한 여러 개의 하위 문제로 나누어 푼 다음, 그것을 결합하여 목적에 도달하는 방법이다.
Permutation & Combination
Algorithm
순열조합(permutation combination), 순열은 순서가 부여된 임의의 집합을 다른 순서로 뒤섞는 연산이며, 조합은 집합에서 일부 원소를 취해 부분 집합을 만드는 방법을 말한다.
Dijkstra
Algorithm
다익스트라 알고리즘은 어떤 변도 음수 가중치를 갖지 않는 유향 그래프에서 주어진 출발점과 도착점 사이의 최단 경로 문제를 푸는 알고리즘이다
Floyd Warshall
Algorithm
플로이드-워셜 알고리즘(Floyd-Warshall Algorithm)은 그래프에서 모든 꼭짓점 사이의 최단 경로의 거리를 구하는 알고리즘이다. 제일 바깥쪽 반복문은 거쳐가는 꼭짓점이고, 두 번째 반복문은 출발하는 꼭짓점, 세 번째 반복문은 도착하는 꼭짓점이다.
Plane sweeping
Algorithm
Plane sweeping은 여러 개의 직사각형이 주어졌을 때, 총 넓이를 구하는 알고리즘이다.
minimum spanning tree
Algorithm
최소비용 신장트리(minimum spanning tree)는 네트워크(가중치가 간선에 할당된 그래프)에 있는 모든 정점들을 가장 적은 비용으로 연결하는 트리를 말한다.
topological sorting
Algorithm
위상 정렬(topological sorting)은 유향 그래프의 정점(vertex)을 간선의 방향을 거스르지 않도록 나열하는 것을 의미한다.
Maximum flow
Algorithm
Network flow란 각각의 간선에 정해진 용량보다 작은 유량이 주어진 방향그래프를 말하며, Maximum flow란 위 수원지(S)에서 수요지(T)까지 공급할 수 있는 최대 유량을 말한다.
Bipartite Match
Algorithm
그래프의 최대 이분 매칭은 두 간선이 같은 정점을 공유하지 않는 간선의 최대 집합을 말한다.