정보) 컴퓨터공학과 과목 맛보기 - 4. 알고리즘
오늘은 '알고리즘' 과목입니다.
컴퓨터과학을 배운다면 빠질 수 없는 바로 그 과목이죠.
백준, 코드포스와 같은 Problem Solving을 하기 위한 기본 지식을 배울 수 있는 과목입니다.
요즘 취직에 필수적인 코딩 테스트를 준비하기 위해서는 이 과목은 열심히 들어야겠죠.
필자가 이 과목을 수강했던 학기는 2020년(2학년) 2학기, 평점은 A+였습니다.
---------------------------------------------------------
알고리즘이란 과연 무엇인가?에 대해서 교수님이 수업 첫날에 보여주신 영상입니다.
알고리즘은 '어떤 문제를 해결하기 위한 절차'를 말합니다.
알고리즘을 많이 알고 있으면
어떤 상황에서 어떤 알고리즘이 좋을지 판단할 수 있고,
더 효율적인 프로그램을 작성할 수 있을 것입니다.
소프트웨어 엔지니어라면 필수적으로 알고 있어야 한다는 뜻이겠죠.
알고리즘은 얼마나 '효율적'인가를 판단하게 되는데요.
이때의 효율이란 Input으로 들어오는 양에 대해 얼마나 빠른 속도로 처리되는 지를 말합니다.
흔히 Big-O라고 하죠.
예를 들어 O(n)인 알고리즘은 Input Size가 2배가 되면 처리 시간도 2배가 되는거고요,
O(n^2)의 알고리즘은 Input Size가 2배가 되면 처리 시간은 2^2=4배가 되는겁니다.
과제로는 위처럼 어떤 알고리즘의 시간 복잡도를 직접 계산해보는걸 했었네요.
그 다음으로는 본격적인 알고리즘에 대해 배우는데요.
정렬에 대한 내용을 배웁니다.
정렬이란 건 말 그대로 여러 데이터들이 모여있을 때, 이를 순서대로 줄 세우는 작업을 말합니다.
Sorting은 알고리즘 수업에서 뗄레야 뗄 수 없는 내용인데요.
워낙 종류가 많기도 하고 시간 복잡도도 전부 달라서
알고리즘에 대해 설명하기 좋은 예시가 되기 때문입니다.
Insertion Sort, Merge Sort, Quick Sort, Count Sort, Radix Sort 등
많은 정렬 알고리즘의 시간 복잡도, 특징, 구현 방법 등에 대해 배웁니다.
이렇게 한 줄로 정리했지만 실제 배우는 내용은 무지 많습니다.
다음으로는 Problem Solving을 공부할 때 빠지지 않는 Dynamic Programming입니다.
이건 어떤 알고리즘 문제를 풀 때의 방법론?이라고 할 수 있는데요.
점화식을 세운다고 생각하시면 됩니다.
슬라이드에 나와있는 예시처럼 피보나치 숫자를 구하기 위해서
이전 단계에서 계산한 결과를 저장해놓은 다음, 그 다음에 나올 숫자를 구하는 거죠.
이를 위해서는 Memoization(이전 단계의 결과를 저장해놓는 것)이 필요합니다.
이 다음은 Dynamic Programming으로 해결 가능한 대표적인 문제에 대해 배웁니다.
LCS, Knapsack 등에 대해 배웠습니다.
그 다음에 나오는 건 Greedy(탐욕) 알고리즘입니다.
이건 각각의 단계에서 가장 좋아보이는 선택만을 하는 알고리즘입니다.
적절한 예는 아니지만 물건을 훔치는(?) 상황인데 가방은 한 개 뿐입니다.
이럴 때 도둑은 비싼 것부터 가방에 차곡차곡 담겠죠.
탐욕 알고리즘은 이와 같이 문제를 해결하는 방식을 말합니다.
하지만 가장 큰 문제점은 바로 항상 최적의 해를 보장해주지는 않는다는 것입니다.
이 이후에는 Greedy 알고리즘으로 해결 가능한 문제들에 대해서도 배웁니다.
혹시 기출 지문 중에 '허프만 부호화' 기억나시나요?
이 허프만 부호화도 탐욕 알고리즘으로 구할 수 있습니다.
Huffman Code 외에도 Fractional Knapsack,
Minimum Spanning Tree를 구하는 Prim's Algorithm, Kruskal's Algorithm 등
여러 Greedy Algorithm에 대해 배웁니다.
이 다음은 그래프에 대해 배웁니다.
그래프는 이산수학 과목을 들으면 배울 수 있는데요.
알고리즘에서 빠질 수가 없는 녀석입니다.
그래프를 돌아보는데(Searching) 쓰이는 알고리즘이 그 유명한 BFS, DFS입니다.
BFS는 처음 시작한 노드에서 같은 거리에 있는 노드를 먼저 탐색한 후, 거리를 점점 늘려가면서 탐색합니다.
DFS는 처음 시작한 노드에서 최대한 많이 들어간 후, 더 들어갈 곳이 없을 때 이전 노드로 돌아와 다시 탐색합니다.
컴퓨터과학을 전공하는 고학년이라면 BFS와 DFS 정도는 안 보고 코딩할 줄 알아야.. 근데 전 까먹음
이렇게 탐색 알고리즘에 대해 배운 이후에는 최단 경로를 구하는 알고리즘을 배웁니다.
최단 경로를 구하는 알고리즘에는 Bellman-Ford, Dijkstra 알고리즘이 있습니다.
마지막으로는 그 유명하고 유명한 P-NP 문제에 대해 배웁니다.
물론 이건 아직까지 해결되지 않은 문제이므로 그냥 어떤 것인지에 대해서만 배웁니다.
유명한 문제이니 상식 좀 쌓는다고 생각하시고 한번씩 들어보셨으면 좋겠습니다.
이 문제를 풀면 $1,000,000 + 엄청난 명예 + 기타 등등을 모두 얻을 수 있습니다
부와 명예를 위해선 컴퓨터공학과에 진학해야
한 학기 동안 이렇게 많은 내용에 대해 배우게 됩니다.
근데 이 과목 특성 상 계속 기억해야 하는 내용이 많아서
주기적인 복습이 필요한 과목입니다.
알고리즘 한번 제대로 공부해놓으면 도움 많이 될 겁니다.
다음에 시간 날 때 또 적어보겠습니다.
제가 적은 글 (클릭하면 연결)
3. 컴퓨터공학과 과목 맛보기 - 2. 시스템프로그래밍(1)
4. 컴퓨터공학과 과목 맛보기 - 2. 시스템프로그래밍(2)
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
짤리려나
-
5천원 더내고 cc받을걱정하면서 기다려야함 ㅎ
-
안녕하세요 수학강사 이대은입니다. 벌써 2025년이 되고 이주일이나 흘러서 수업하는...
-
한석원 알파텤 다음 기출로 넘어가도 무관??
-
고심리 썼었다면 붙었나요?
-
입시 경쟁자 제거
-
예비고3들한테 취업걱정 ㅈㄴ받노
-
성대 공학계열 0
최종컷 몇으로 보시나요...? 아직 점공 50퍼도 못 넘었던데 ㅠㅠ
-
아니 진짜 과외 2
어케하죠... 과목은 수학입니다. 가르쳐야 하는 애는 그냥 노베고요. 현재...
-
누가 만든건지 참 ㅋㅋ
-
정시일반 만큼이라도 살려줘라 우리는 거의 정석대로 온거잖아 우리만 빼고 좀 해
-
반응보면 진짜 개망한 것 같은데
-
번아웃 와서 학교도 자퇴하고 2년동안 시간 날리다 이제는 고3돼서 공부 해야하는데...
-
밑줄 친 부분 구하는 방법 알려주세요.. 전개를 이용해서요
-
ㄷㄷ조심해야지
-
그 전에 원서 접수한 애들은 구제해줄텐데 버리고 온 한의대.. 수의대.. 공대.. 아른거린다
-
카트끄는중
-
출신인물 란에 아는 유명인들 몇명나옴
-
공군 7월 10
컷 100점? 101점? 얼마일까요
-
양자정보공학 입결 어디까지 박을까
-
알빠노?
-
가만히 앉아서 피해자 됨 걍 수험생활하고 의대왔는데 왜 불이익을 받아야 하는 건지...
-
적폐전형 0
기균 저소득 썼는데 이건 적폐가 맞는 것 같다.. 돈 많이 벌면 사회에 돌려놔야지
-
삼수 고민 4
평균4등급 따리인데 6월부터 시작하면 인서울 들어가긴 힘들겠다는 생각이 들어서요.....
-
美당국, '불법 선거요원' 혐의 중국인 체포…中 "상황 몰라" 1
[베이징=뉴시스]박정규 특파원 = 미국 당국이 2년 전 캘리포니아 시의회 선거에서...
-
합리적으로 생각하면 아마 26 모집정지는 없을 것 같습니다. 6
물론 개인적인 뇌피셜에 불과하긴한데요의평원은 지금 25 의평원 불인증을 통해...
-
불인증되면 11
퇴학 처리된 전적대에 재입학 가능하냐 진지하다 ㅅㅂ
-
걍 수능접을까 패스값아깝긴한데
-
공대 물리 질문 0
공대 전과 목표로 물리 ebs개념강의 듣고있는데요 개념교재에 있는 문제들 말고 따로...
-
후후오나 0
ㅇㅇ
-
현대시 고전시가 0
현대시랑 고전시가가 많이 약합니다 이 두 파트 잘하시는 선생님 추천 좀 부탁드랴요ㅜㅜ
-
확통 질문 1
재수생입니다 미적에서 확통으로 넘어가는데 고1수학에 경우의 수 순열과 조합쪽 기억...
-
이 문제입니다. 각 코일에 흐르는 전류를 구해야 하는 내용인데요. 문제 조건은 제가...
-
컨설업체는 가장 큰 문제가 지들끼리 정보공유를 안함ㅇㅇ 1
이름보고 드가는건데 ㅇㅇ
-
기출을 씹어먹어야하나 에혀
-
김준vs고석용 5
김준쌤이랑 고석용쌤이랑 차이가 많이 나나요? 지금 베개완 듣고 다음엔 뭐 들을지...
-
이번에 정시 지원해두고 있는 현역임 수능성적이 그렇게 좋은편은 아니였음에도 상향을...
-
시가바 가고싶다 0
술 한 잔 땡기고 싼 거 태워도 최소 6만원인데 돈이 업따....
-
황교안 "부정선거로 192석 차지한 야당…주사파·친중 세력 결탁해 내란 프레임" 6
황교안 전 국무총리가 오늘 국회에서 긴급 기자회견을 가졌습니다. 이 자리에서 황 전...
-
로그 알파베타와 로그 베타알파가 서로 역수관계인가요?.?
-
고딩때 사랑니 양쪽어금니에 났는데 지금 존나이쁘게 자랐음
-
괜찮네..? 점공 들어와있는 인원이 별로 없길래 우주예비 받을줄 알았는데 1배수는...
-
예비는 나올줄.. ㅠㅠㅠㅠㅠㅠㅠㅠ
-
걍 다 닥치고 내년 의대 정시정원이나 발표해라 ㅇㅇ 4
이미 정시 메디컬 반토막이던데 더 줄면 수능안치게 ㅅㅂ럼들아
-
문과 기준 정시로 대학가기 더 어려워 지나요? 아니면 그렇게 영향이 크진 않을까요?...
-
고를수 있으면 뭐 고름?
-
순천향 지역인재 0
점공이 궁ㄹ금해요
-
원광의는 증원 있든 없든 무너질 학교였단건데 나머지 학교들은 증원으로 불인증받을지...
-
의대 26은 몰라도 25학번이 피해받는 매커니즘 설명좀 8
불인증 나도 교육청에서 컷할수 있다 뭐 그렇게 들었고 25학번은 이미 입시 시작되서...
PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS!
ㄱㅁ
PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS! PS!
빨리 n log n 찬양해
와 어지럽네
사실 이건 알고리즘 중에서도 극히 일부인..
레드 블랙 트리 구현 때문에 이진 탐색 혐오 조금 생김