본문 바로가기

Algorithm/Algorithm for Beginner

0. 알고리즘 초보자를 위한 알고리즘

처음 포스팅을 작성하는데 있어 전달드리고 싶은게 있어 작성한 글이니 굳이 읽으실 필요는 없습니다!


1. 이 게시물은 누군가를 가르쳐야 겠다는 목표의식이나 대단히 훌륭한 결과물을 내놓겠다는 생각으로 작성하는 것이 아니기 때문에 보시는 분들도 불-편한 마음이 아닌 편-안한 마음으로 스르륵 읽어주시면 감사드리겠습니다.


2. 제가 자료를 정리하게 된 이유는 크게 두 가지입니다.


첫번째로는 Java된 알고리즘 학습 소스가 C나 C++에 비하여 부족한 편입니다. Java는 알고리즘에 특화된 언어가 아닙니다. C나 C++와 달리 JVM 위에서 실행되는 Java 프로그램은 속도면에서 상대적으로 열위에 놓여있을 수 밖에 없고 이는 알고리즘 문제풀이에 있어 치명적인 단점이 됩니다. 알고리즘 분야에서 C와 C++가 훨씬 폭넓게 쓰이는 것은 당연한 것이지만, Java 및 Python 등 다른 프로그래밍 언어로도 복잡한 알고리즘을 충분히 구현할 수 있거나 더 간편하게 구현할 수 있고, 최근에는 많은 대회에서 C, C++뿐만 아니라 다양한 프로그래밍 언어로 응시가 가능하게 됨으로써 다른 프로그래밍 언어의 알고리즘 학습에 대한 가치가 높아졌다고 할 수 있습니다. (물론 제가 Java로 처음 알고리즘을 공부하기 시작해서 그런 것만은 아닙니다.) 솔직히 그런 것도 같습니다. 이에 Java로 알고리즘을 공부하시고자 마음을 먹으신 분들을 위해 Java로 된 알고리즘 공부 소스를 제공하기 위해 이 포스트를 작성하게 되었습니다.


두번째로는 제가 모처에서 진행한 알고리즘 교육자료가 아까워서 입니다. 그 때는 열심히 만들었는데 잉여마냥 공간만 차지하고 있는 자료들을 정리해야겠다는 생각이 들어 포스팅을 하게되었습니다. 당시 교육들으신 분들이 대단히 높은 수준의 강의를 원하신 것은 아니었기 때문에 기초적이고 쉬운 내용이었지만, 어딘가의 누군가는 이런 내용도 필요하시지 않을까 합니다.


3. 앞으로 게시될 자료는 저처럼 개발 경험이 오래되지 않으셨거나 이제 막 Java로 알고리즘 학습을 시작하시는 분들을 위한 것입니다. 알고리즘 지식이 풍부하신 분들이 읽을만한 자료는 못됩니다. 하지만 고인물만 있으면 저같은 알린이들은 어디서 공부하나요ㅠ 알린이들을 위한 자료로 사용될 수 있도록 충분히 자세하고 코드 위주로 하나씩 설명하도록 하겠습니다. 


4. 내용면에서 최대한 기본적은 내용부터 설명하겠지만, Java라는 언어 자체에 대한 설명은 포함되어 있지 않습니다. Java는 저보다 훨씬 잘 설명해주실 분들이 많이 계실 것이기 때문에 굳이 제가 진행할 필요가 없다고 생각합니다. 개인적으로 인프런을 참 좋아합니다. 양질의 강의를 무료 혹은 아주 저렴한 가격으로 수강할 수 있는 사이트입니다. Java 강의링크를 아래에 남겨드리겠습니다. 필요하신 분들은 수강하고 오시면 감사드리겠습니다.


인프런: 초보부터 개발자 취업까지!! 실전 자바 강좌

https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EA%B0%95%EC%A2%8C/


찾아보니 문서로 잘 정리된 소스가 있어서 링크 추가합니다.


점프 투 자바

https://wikidocs.net/book/31


읽어주셔서 감사합니다!