알고리즘 사이트에서 소소하게 문제푸는것 자체는 재미가 있습니다.
근데 제가 푼거랑 다른사람들이 푼걸 비교하면
아.. 이사람은 배열이나 포인터 템플릿 클래스 등을.. 적절히 활용해서
뭔가 완성도있게 만드는데 제가 만든걸보면 위에것들을 하나도 안쓰고 걍 엄청 단순합니다.
그리고 위에것들(배열, 포인터.. 등)을 왜 그 상황에서 굳이 쓰는지도 잘 모르겠고 그렇습니다.
제가 저것들의 각각의 기능에 대한 지식이 부족해서 저런것들을 적절히 활용못하나부다..하고 생각도 해봣지만
그것또한 아니더라구요..
누가 반년 공부해보면 자기 적성에 맞는지 알수있다는데 전 대학 1년반을 다니고
또 반년을 독학으로도 알고리즘문제 사이트 찾아가면서 문제풀고해봤지만
활용못하는건 여전하네요.. 제 공부방법이 틀렸나요?
구체적으로 어떻게 해야할지 공부방향을 가르쳐주실분 계실까요ㅠㅠ..
선생님께서 하신 질문은 리그오브레전드를 플레이하는 사람들을 보고서 "저 사람은 키보드를 잘 쓰는데 어떻게하면 저도 이렇게 쓸 수 있나요?"와 비슷하십시다. 키보드는 원래 문자 입력을 위한 도구이고 게임에서는 원래 목적을 변경해서 캐릭터 조작에 쓰이는 것입니다. 알고리즘 문제풀이에서 이용되는 고급 언어 지식도 마찬가지 입니다. 소스코드를 간결하고 짧게 짜기 위해서 이용하는 것일 뿐 꼭 사용해야 하는 것은 아닙니다. 선생님께서 원하시는게 리그오브레전드 플레이를 잘하고 싶은건지 키보드를 잘 사용하고 싶은 것인지 구분하실 필요가 있을 것 같습니다.
알고리즘 문제를 잘 풀고 싶으시면 자료구조와 알고리즘을 공부하시면 됩니다. STL이나 템플릿을 공부하면 좀 더 편하게 풀 수 있을 뿐, 못 풀던 문제를 풀게 해주는 것은 아닙니다. 반대로 언어의 기능이나 실무에 가까운 코딩 스타일을 배우고 싶으시다면 Effective STL 같은 언어 책이나 클린 코드 같은 설계 관련 책을 읽으시는게 도움이 될 것 같습니다.
언어의 기능을 공부하기 위해서 알고리즘 문제를 푸는 것은 잘못된 생각입니다. 확실히 알고리즘 문제를 풀면 언어의 다양한 기능을 알아보게 되어 어느정도 공부가 되는 면이 있지만, 그건 부차적인 것일 뿐 다양한 기능을 배우지도 못할 뿐더러 잘못된 코딩 습관이 들 수도 있습니다. 알고리즘 문제는 어디까지나 알고리즘을 공부하기 위해서 푸는 것일 뿐입니다.
ㄴ 갤주님은 알고리즘을 왜 하시나요? 취미?
양질의답변이다..
선생님... 감동했습니다... Ms. 알린이도 좋아할 겁니다...
감사합니당!
방향을 못잡고 계신듯한데. 독학이시라면 그냥 인터넷보고 하는것보단 책을 통해서 배우는걸 추천드립니다. 책은 저마다 가이드라인이 있기때문에 체계적인 지식습득이 쉽거든요.
ㄹㅇ 갤주...현자다