본문 바로가기
알고리즘/알고리즘 정리

알고리즘 공부 방식,순서 (개인적인 경험)

by 말린밴댕이_공부 2023. 6. 26.
반응형

안녕하세요 아직도 알고리즘에 대해서 항상 문제를 풀고있고 취업을 위해.. 항상 열심히 하고 있는 개발자 지망생중 하나입니다.
 
아직 실력도 많이 부족하고 알고리즘 걸음마 뗀것 같지만 그래도 알고리즘을 시작하거나 아직 막막하신 분들을 위해 몇자 적어보고자 합니다 😀
 

알고리즘이란?

누구나 항상 개발자 지망생이라면 매일같이 하는 말이 "1일1알고리즘.." 이라는 말을 입에 붙혀산다고 생각합니다.
 
개인적으로는 취업을 위해 그리고 아직 경험을 못해봤지만 현업에서도 실무를 처리를 위해 알고리즘에 대해서 공부를 하곤 합니다.
 
내가 꿈꾸는 그리고 지금 이글을 보고 계신 모든분들이라면(사실, 현업자분들은 알고리즘 공부방식에 검색해서 보지 않을꺼라 생각합니다.) 효율적으로 공부를 하고 싶고 저 또한 항상 그럽니다.
 
개인적으로 이제 코딩테스트를 봤을때 어느정도는 푸는것 같아 여태까지 해왔던 저의 알고리즘 공부와 더불어 앞으로는 어떻게 해야할것인지에 대해서 잠시 적어보도록 하겠습니다.
 
 

1. 알고리즘 기초

알고리즘을 풀기 위해서는 당연하게도 일단 언어에 대한 이해가 있어야한다고 판단합니다.
 
알고리즘을 공부하기 위한 제가 쓰는 c++의 언어로 예시를 들자면
초기에 반복문, 조건문과 같이 기초와 더불어 점점 stl을 사용하여 vector , map, algorithm등등 하나씩 이해를 해야간다고 생각합니다.
https://www.acmicpc.net/step

단계별로 풀어보기

단계별은 @jh05013님이 관리하고 계십니다. 단계제목설명정보총 문제내가 맞은 문제1입출력과 사칙연산입력, 출력과 사칙연산을 연습해 봅시다. Hello World!132조건문if 등의 조건문을 사용해 봅시다

www.acmicpc.net

사실 저 같은 경우 학교에서 자연스럽게 c++이라는 언어를 접하게 되어 윤성우의 열혈 c++ 프로그래밍이라는 책을 접해 어느정도의 기초를 학교 수업과 더불어 이해를 하게 되었습니다.
 
하지만 학교에서는 stl에 대해서는 설명을 해주지 않으므로 그 부분에 대해서 공부를 진행하였습니다.
 
저는 과거에 모두의 코드를 자주 참조하면서 이해를 하면서 넘어갔습니다.
https://modoocode.com/

모두의 코드

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정

modoocode.com

 
하지만 요즘은 ChatGPT에게 STL에 대해서 질문을 하면 즉답을 해주기 때문에 활용에 대해서 공부를 하게 되면 좀더 효율적으로 할 수 있지 않을까 생각합니다.

라이브러리의 이해와 더불어 백준의 기초적인 단계별로 풀어보기 에서 1단계부터 15단계정도까지 풀어주면서 어느정도의 알고리즘의 기초를 쌓았습니다.
 

2. 알고리즘 초반

알고리즘의 초급단계를 거쳐 이제 어느정도의 실력이 쌓아졌다고 판단하여 무작정 대학교 동기들에게 알고리즘 스터디를 하자고 하였습니다.
 
그렇게 3인에서 알고리즘 스터디를 시작하였다.
 

 
문제는 풀수있다면 최선을 다해 풀지만 1시간 정도 이상이 되면 그것에 대해서 어디서 막혔는지 그리고 어떤점을 보고 공부를 했는지에 대해서 얘기를 하였습니다.
 

그렇게 약 7개월 정도의 스터디를 진행하고 아직은 다들 취업과의 거리가 먼 3학년 초반 이어서 그런지 스터디는 끝이 났지만 그럼에도 기초적인 문제를 풀다보니 어느정도 브실~골4정도 까지의 문제들은 고민만 하면 푸는 실력까지는 온것 같다.
 

3. 코딩테스트를 본 후 첫 느낌

약간은 여태까지 공부는 이제 이해를 하는 걸음마를 떼는 단계였다. 
 
이외에도 조금은 개인적으로 2022년 2023년 조금씩은 알고리즘 문제들에 대해서 풀긴 했지만 아직은 많이 부족하다는 것을 코딩테스트를 보면서 느꼈습니다.
 
그렇게 시간이 지나 정말 이제는 4학년이 되어 코딩테스트를 처음 체험겸 치뤄봤는데 프로그래머스의 형태의 문제들을 처음 접해서 굉장히 당황했다. 
 
또한 시험도중 레퍼런스를 볼수도 있다는 사실도 모르고 정말 우왕좌왕하다가 끝난 팀네이버 코테였다..
 
4문제중 1문제도 겨우풀어 내 자신에게 실망을 하고 
 

외부 IDE만 쓰면서 백준을 풀었던 나는 처음 프로그래머스 시험환경이 익숙치 않았다.
 
정말 백문이 불여일견이라고 코딩테스트 실력이 부족하다고 망설이는 분이 계신다면 체험겸 무조건 체험을 해보는 것을 추천드립니다.
 

그렇게 저는 프로그래머스 레벨2 (정답률 높은순 -> 낮은순) 을 계속해서 풀었습니다. (지금도 풀고있습니다.)
 
그리고 조금씩 보완해가면서 코딩테스트를 치뤘습니다.
 

4. 코딩테스트를 점점 보면서 느낀 점

 
이제는 문제를 보자마자 어느정도 감도 잡히고 시간만 있으면 풀 수 있다. 
 
하지만 이제 발목을 잡는 것은 턱없는 시간이다.
 

앞으로의 저의 여정은 지금 프로그래머스 레벨3 정답률 높은순에서 풀기 하지만 시간을 재면서 정말 제한된 시간에서 푸는 연습을 하고 있습니다.

 
알고리즘을 시작하는 이 글을 읽고 있는 분께도 조금이나마 도움이 되셨으면 합니다.

반응형

댓글