정보) 컴퓨터공학과 과목 맛보기 - 4. 알고리즘
게시글 주소: https://h.orbi.kr/00066884548
오늘은 '알고리즘' 과목입니다.
컴퓨터과학을 배운다면 빠질 수 없는 바로 그 과목이죠.
백준, 코드포스와 같은 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를 선물하세요.
-
그냥뉴런들을까요
-
올해는 누나한테 과외받으면 1 뜨겠지..?
-
이거 살까 0
진지하게 고민임
-
듣기 맞 -->정시 충남의 전남의 전북의 충북의 여러 지사의 적정권, 수시 가천의논...
-
살아보고 싶다 노력하는 사람은 빛나는구나.. 카페인의 도움만 받을 수 있다면...
-
막 달진 않은데 그냥 요구르트 음료수 같음
-
성적변화 7
작년엔 찌찌큰게 좋았는데 아직도 찌찌큰게 좋음
-
서강대 님들아 1
교외 OR이거 2월 23-25 같던데 맞나요? 정시 추합러들도 참가 ㄱㄴ함? 1차추합같은데
-
사탐 걍 안나대고 사문 생윤 근본조합할듯..ㅋㅋ ㅠㅠ
-
뻘글쓰고시픈데 나만 신상떨릴까봐 글못올림?????? 4
무떠워요
-
새벼게 옴 2
ㅅㄱ
-
라면끓이기 4
-
유기만 하지 말자 수능날에 32111 되면 절한다
-
아잇젠장 11
인스타 릴스 보느라 시간가는줄 몰랐네요 내 얼버잠... 알고리즘한테 취향 저격당해버림
-
성적변화 5
24수능 25243 -> 국숭세단 예비없이 광탈 6모 14111 9모 24121...
-
본인영어특 3
어려우면 잘보고 쉬우면못봄
-
서울 가톨릭 성균관 고려 한양 중앙 인하 아주 부산 전북(?) 경상 고신 강원 또 있나
-
뻘글 삭제 완 0
뇨.
-
반수 결심하고 6평 풀었는데 영어에서 턱 막히길래 오씨발 포기할까 했는데 채점하고...
-
그냥 날 항상 따라다니는 불행과 억까만 없어졌으면 좋겠어
-
진짜임 ㅋㅋㅋ
-
우리의 꿈 0
-
3~높2 2 2 물6 사문5 지4 뜰듯 ㅋㅋㅋㅋㅋㅋㅋㅋ
-
김동욱 1
자 갑 러 니 다
-
영어를좀합시다 여러분..
-
음.. 영어 대충 5등급 탐구 9등급 9등급 수학 한 80점 (미적 똥 실력, 수2...
-
1.운전 2.머리 세팅하는법
-
아직 꿈은 명확하게 없고 로스쿨쪽도 생각을 안하는 건 아닙니다 경희대 국제는 거의...
-
평범하게 행복한 하루하루를 즐길 수 있는 사람이 되어서 그 나날들을 사랑하는 사람과...
-
바리에이션으로 국2영5 3개
-
이번 강기분에서 자기는 꿈꿀 때 자기가 어렸을 때 살았던 프랑스 꿈꾸신다고 그러시던대
-
되게 멍청한 질문인 거 아는데 다들 공부 몇시간 하시나요 5
전 잇올 끝나고 집에 와선 친구들이랑 디코하고 깨작깨작 게임하면서 몇 시간 쉬는...
-
개념적으로 빈칸은 솔직히 없는거 같은데 지로함이랑 삼각함수 문제가 너무 안풀려요.....
-
고쳐도 고칠 게 계속 보인다.. 피곤하다 힘들다
-
이 난이도에 만점자가 3%나오는게 우리나라 물리계의 미래가 밝다 자랑스럽다 물1러들!
-
적백 과탐5050은 쉽게쉽게들 하면서 영어에서 발목잡히는 게.... 내가 영어퍼거라...
-
인강 들을 시간이 많이 없어서 일단 수국김 듣고 고전시가 체크메이트 문학,독서...
-
사탐같은경우에 기출 강의 포지션이 뭐임? 난 그냥 냅다 빨더텅사서 하루에 두개씩...
-
따뜻한 장작불 앞에서 치킨에 맥주를 준비하고 밤 바다의 차가운 공기를 맞으며...
-
매일 출석하면 9
이렇게나 주는 거엿다니 글은 안 써도 열심히 출석 해야겠어요
-
향수에 옷 좀 사니까 거지됨 아우터 못 샀는데.. 일을 열심히 해야겠다
-
재밌는 주제가 하나 생각났어요
-
커로 모음 4
국어 - 5등급 (고1 6모) 수학 - 6등급 (고1 6모) 영어 - 2등급...
-
고양이 되서 평생 냐옹냐옹만 하다가 가끔씩 냥냥펀치도 날려주고 그렇게 좋은 주인...
-
강사 기출강의 들으면 마더텅이나 자이같은 기출문제집 풀 필요 없나요?
-
사촌형들 왤케 다 잘생기고 형수님도 이쁘시냐
-
션티 nf 0
고2 모고 기준 4등급 지금 키스타트 거의 끝나서 키스로직하려고 했는데 뭔가 그냥...
-
참 신기함 난 갠적으로 질문하기도 너무 힘들던데 막 상담도 해주고 밥도 사주고 보면 싱기함
-
다녀보신분없나요? 전 남자가 좀 더 많은걸 선호하긴하는데 여초도 좋은게 있나용
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 찬양해
와 어지럽네
사실 이건 알고리즘 중에서도 극히 일부인..
레드 블랙 트리 구현 때문에 이진 탐색 혐오 조금 생김