티스토리 뷰
Algorithm - intro
안녕하세요 : )
shiny ocean입니다.
3학년 2학기를 맞이하며 새롭게 다루어볼 전공 과목중 "블로그에 포스팅을 통해 기록을 남겨야겠다!!" 고 결심한 것은 데이터베이스와 알고리즘 두 과목이었습니다.
이번 카테고리는 그중 알고리즘에 대한 내용을 다루어 보겠습니다.
들어가기전에 잡담을 먼저 해보겠습니다.
시작하자 마자 정렬의 종류는 퀵, 선택, 병합 어쩌구 시간복잡도는 저쩌구 하면 거부감만 들거 같습니다
하지만 유감스럽게도 다음 포스팅부터는 그렇게 할것입니다...
어쨋든 이번 포스팅에서 해볼 이야기는 "알고리즘이 무엇일까"에 대해 초점을 맞춰 보겠습니다.
알고리즘?
제가 저 단어를 처음 접해본것은 알파고와 이세돌9단의 바둑경기가 이슈였을때 입니다. 제가 고등학교 3학년때니까 5년은 지난 시절인것 같습니다. 그때 바둑경기 해설위원이 알파고의 동작원리를 간단하게 알려주며 알고리즘을 언급했던것 같습니다. 그 후 몇년이 지나 유튜브에 "알수없는 알고리즘에 이끌려 이 영상에 왔다" 라는 댓글을 종종 발견할수 있게 되었습니다. 그때 당시에는 무언가 규칙이 존재하는 흐름도? 정도로 대충 생각하고 넘겼던것같습니다.
그럼 정확한 뜻이 무엇일까 갓무위키에게 물어보겠습니다.
Algorithm
문제를 해결하기 위한 절차나 방법.
이 단어는 페르시아의 수학자인 알-콰리즈미 (الخوارزمي)의 이름에서 유래했다고 알려졌다.
(나무위키)
그럼 이제 우리는 이번 포스팅에서 무엇을 하게 될지 정확하게 알게 되었습니다.
알고리즘의 사전적의미인 문제를 해결하는 절차나 방법을 이용해서 프로그래밍 문제를 해결해 보는것입니다.
물론 알고리즘을 직접설계하지는 않습니다.
이미 똑똑하신 수학자, 과학자, 공학자 분들이 쓸만하고 유익한 알고리즘을 개발 하셨고 책이나 인터넷을 통해서도 널리 알려져 있습니다, 우리는 그저 그들이 만들어둔 알고리즘들을 공부하고 적절히 사용하는 방법에 대해서 고민해 보아야 합니다.
알고리즘 공부를 시작한지 2주가 지나고 있는데 배우면 배울수록 머리아픈 과목인건 확실합니다. 하지만 고등학교때 어려운 수학문제를 많은시간과 노력을 통해 풀고 답이 맞았을 때 오는 쾌감?과 많이 닮은것 같습니다.
대기업 코딩테스트의 기준이 되는것이 알고리즘이고 개개인의 코딩 피지컬을 가장 직관적으로 확인할수 있는것도 알고리즘 실력이라합니다. 케바케겠지만 상당수 동의 합니다. 문제를 풀며 프로그래밍적으로 유연한 사고를 키울수 있는것은 확실하기 때문입니다.
마지막으로 이론은 대학교 강의와 "동빈나" 유튜버 님의 영상을통해 공부하고 실습은 파이썬또는 자바 언어를 통해 진행해볼 생각입니다!
그럼 다음 포스팅을 통해 정렬 알고리즘 부터 시작해보겠습니다.
'Development > Algorithm' 카테고리의 다른 글
Algorithm - 버블 정렬(bubble sort) (3) | 2021.09.16 |
---|---|
Algorithm - 선택 정렬(selection sort) (0) | 2021.09.16 |