IT지식/나머지

[IT지식] 자료구조와 알고리즘 공부를 해야하는 이유?

매 석 2022. 10. 24. 00:00
반응형

 

1. 자료구조와 알고리즘?

- 자료 구조는 데이터의 효율적인 접근과 수정을 위해 데이터를 표현하는 방식으로,
알고리즘의 유용한 재료가 된다. 알고리즘은 어떠한 일을 처리하기 위해 정해진 절차나 방식을 표현한 것이다.

2. 자료구조의 종류

- 자료 구조는 '선형'과 '비선형'으로 구분된다.
선형 자료 구조에는 '리스트', '스택', '큐' 등이 있고,
비선형 자료 구조에는 '트리'와 '그래프' 등이 있다.
자료 구조를 제대로 이해해 적재적소에 적용하면 데이터를 효율적으로 송수신할 수 있고, 편리하게 관리할 수 있다.
많은 알고리즘 중에 자주 공부하는 알고리즘은 '정렬', '탐색'이다.
이 알고리즘은 데이터를 순서에 맞게 정렬하거나 찾는 것이다.
정렬 알고리즘에는 '버블 정렬', '병합 정렬', '퀵 정렬' 등이 있고, 탐색 알고리즘은 '트리 탐색'을 같이 공부하는 것이 좋다.

3. 알고리즘의 성능

- 알고리즘의 성능을 평가하는 데 '복잡도'라는 개념을 사용한다.
복잡도는 '점금 표기법(O,빅 오)'을 사용해 표기하는데, 점금 표기법은 어떤 함수의 입력값이 증가함에 따라
그 출력값이 얼마나 증가하는지를 표현하는 것이다.
알고리즘의 복잡도는 다시 '시간 복잡도'와 '공간 복잡도'로 구분된다.

시간 복잡도는 알고리즘이 실행되는데 걸리는 시간을 말하고,
공간 복잡도는 알고리즘이 사용하는 메모리의 양을 말한다.

시간 복잡도는 알고리즘이 처리하는 연산의 양에 비례하는데, 보통 알고리즘이 최악의 상황에서
처리할 수 있는 연산의 양을 말한다.
공간 복잡도는 단순히 메모리의 사용량을 표현한 것으로, 빅데이터의 활용도가 높아지면서
중요성이 강조되고 있는 지표이다. 대용량의 데이터를 한 번에 불러올 때 발생할 수 있는
메모리의 하드웨어 용량 부족에 대비하기 위한 지표이기도 하다.

4. 마무리하며

즉 프로그래밍을 활용한 모든 직군을 가려면 프로그래밍을 잘해야 한다.
프로그래밍을 잘한 다는 것은 결국 자료 구조와 알고리즘을 코드에
잘 녹여내어 가진 자원과 시간을 가장 효율적으로 사용할 수 있다는 것이다.
다시 말해, 프로그래밍 관련 직종 종사자나 지원자들은 자료구조와 알고리즘을
잘 다룰수록 더욱 큰 장점이 되는 것이다.

 

[IT지식] 빅데이터 직종에서 가장 많이 사용되는 언어는?

1. 각 직종별 프로그래밍 중요도 - 데이터 사이언티스트와 데이터 리서처에게는 코딩 기술 없이는 일의 진행이 불가능할 정도이다. 연구 결과, 모델 이해, 모델 시험 및 발표 등 모두 코드를 쓸

maeseok.tistory.com

 

5. 알고리즘 공부 사이트

 

Baekjoon Online Judge

Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다.

www.acmicpc.net

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com