개발자

알고리즘 추천 도서

2022년 09월 06일조회 576

안녕하세요. 최근에 백준 문제 풀면서 알고리즘 공부가 다소 필요하다는 생각이 들어서 도서를 찾아다녔는데 어떤 책들은 그닥 실용적이지 않다는 말을 듣고 어떤 책이 실용적인 알고리즘을 담은 책인지 찾고 있습니다. 난이도 상관없이 알고리즘 책을 추천해 주세요

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

인기 답변

문승욱(카이론)님의 프로필 사진

저는 그냥 프로그래밍 챌린지 (http://www.yes24.com/Product/Goods/1396784) 봤습니다만... 알고리즘 책은 아니긴 한데, 생각하는 프로그래밍(http://www.yes24.com/Product/Goods/11686227) 생각할 거리를 던저줌과 동시에 책꽂이에 꼽을 좋은 장식이 됩니다. @커누스좌의 Art of Programming(http://www.yes24.com/Product/Goods/15084534)은 샀다는 사람은 많은데 완독하신 분은 못봄... 저도 책꽂이 장식품 ㅋ

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

비슷한 질문 2

Q. 알고리즘 공부(코딩 테스트-프론트엔드)

안녕하세요 프론트엔드를 준비 중인 학생입니다. 현재 알고리즘 문제를 백준/프로그래머스/코드업에서 풀고있습니다. 그런데 알고리즘 유형이 워낙 다양하다보니 선택과 집중을 해야할 것 같은데 프론트엔드 코딩테스트를 위해서 어떤 알고리즘들을 중점적으로 해야할지 고민이 됩니다. 현직자분들의 귀한 조언 부탁드립니다.

안녕하세요, 최근 퇴사 후 구직중이라 코딩테스트 문제들을 풀고있는 프론트엔드 개발자입니다. 프론트엔드라고해서 다른 문제를 내지는 않는것 같고 보통 공통된 알고리즘 문제를 풉니다. 리스트, linked list, hash map, dynamic programming, backtracking 등... 특히 주니어 레벨에서는 프론트에 한정된 도메인 지식을 요구하진 않기 때문에 실제 코딩실력을 보기위해 코딩테스트를 봅니다. 따라서 일반적인 알고리즘 코딩 문제 풀이를 연습하시면 됩니다 :) 저는 외국 사이트들 위주로 풀고 있는데 영어가 괜찮으시면 이쪽 사이트를 이용하는걸 추천드립니다. leetcode : easy 문제 위주로, upvote가 많은것 위주로 풀기 (구글 리쿠르터에게 추천받음) codesignal : 쉬운문제부터 차례로 풀도록 되어있음. leetcode와 달리 문제를 골라줘서 접근성이 더 좋음. 프로그래머스는 사용하는 회사들이 있어 괜찮은 것 같고, 백준은 정보올림피아드 등 개발자 코테보다는 알고리즘 문제풀이대회에 더 맞는것 같아 저는 사용하진 않습니다. 하지만 데이터 구조에 대한 지식이 없는 단계에는 추천드립니다.

이 질문 바로 가기

Q. 안녕하세요! 알고리즘 공부를 좋아하는 대학생입니다!

안녕하세요! 저는 현재 컴퓨터공학과 휴학중이고, 군 복무 중인 군인입니다! 군대를 친구들보다 좀 늦게 온 탓도 있고, 하루하루 발전해가는 자신을 보면 기분도 좋고 시간도 빨리 가서 군대에서 공부를 하고 있습니다. 주로 공부하는 분야는 알고리즘입니다! 알고리즘 공부를 하다 보니, 이 분야가 너무 재밌고 좋아서, 이 분야를 업으로 삼고 싶습니다. 그리고 누가 저보고 어떤 개발자를 하고 싶냐고 물어보면, 그냥 명칭은 잘 모르겠지만, 딥러닝/머신러닝 알고리즘을 연구하고 성능을 개선하는 일을 하고 싶다고 대답했습니다! 구글링 해 봐도 시원하게 결과가 나오지 않고, 요즘 핫한 chatgpt에게 물어보니 제가 하고 싶은 일을 하는 직렂의 이름은 머신러닝 엔지니어, ai 연구원이라는 답변을 받았습니다. 이 글을 쓴 이유는, 저런 일을 하고 싶은데, 현업자 분들의 조언이 구하고 싶었기 때문입니다. 먼저, 제가 현재 학습하고 있는 방식을 말씀드리겠습니다. 1. 먼저 알고리즘 관련 도서(foundations of algorithms 5/E)로 기본적인 알고리즘을 학습하고, 구현까지 해 봅니다. 구현한 코드는 완성일수도 있고, 미완성일 수도 있습니다. 2. 구현한 코드를 바탕으로, 만약 코드를 모두 완성했다면, 여기선 왜 이렇게 했는지, 핵심 로직은 어디인지 분석해 봅니다. 만약 완성하지 못했다면, 이미 구현해둔 코드(다른 사람이 구현한 코드) 를 보면서, 어떤 부분에서 막혔는지 파악합니다. 3. 이렇게 코드를 완성했다면, chatgpt를 활용해, 코드에 대해서 설명해 달라고 하고, 제 생각과 다른 부분들이 있다면 왜 그렇게 생각하는지 물어보고, 저 스스로도 제 생각이 맞는지 고민해 봅니다. Chatgpt가 정답만을 말하는 것은 아니기에, 계속 질문해 가면서 이해를 높입니다 4. 이렇게 알고리즘에 대한 이해를 완료했다면, 최적화 기법에 대해서 고민해 보고, 최적화 기법에 대해서, 1~3의 과정을 반복합니다. 5. 백지에 알고리즘 이름만 써 두고, 제 머릿속에 있는 모든 것을 써 봅니다. 예를 들면, floyd-warshall 알고리즘이라면, 기본 원리는 뭔지, 구현은 어떻게 하는지(실제로 구현까지 해 봅니다), 최적화는 어떻게 할 수 있는지,, 등등을 다 써 보고, 부족한 부분은 다시 공부합니다. 6. 백준에서 관련 문제를 찾아서 풀어봅니다. 이렇게 공부를 진행하고 있습니다. 그럼 여기서 궁금한 점은, 1. 제가 하고 있는 방식에 추가적으로 할 것들이 있는지 궁금합니다. 2. 제가 하고 싶은 일을 하기 위해서, 대학원에 진학하고자 하는데, 구체적으로 제가 어떤 것들을 추가적으로 해야 할지 궁금합니다.(알고리즘 공부 방법에 대한 질문이 아닙니다) 혹시 추가로 조언해 주실 사항들이 있다면 해 주시면 정말 감사드리겠습니다.

안녕하세요! 알고리즘에 관심이 많으시고 머신러닝 엔지니어나 AI 연구원을 꿈꾸시는 대학생분께 조언 드리겠습니다. 1. 현재의 학습 방법에 추가적으로 고려해볼 점: 현재 진행 중인 학습 방법은 알고리즘을 이해하고 구현하는 데 좋은 접근입니다. 추가적으로 고려해볼 만한 항목들은 다음과 같습니다. - 자료구조: 알고리즘 공부와 함께 자료구조에 대한 이해를 높이는 것이 중요합니다. 트리, 그래프, 스택, 큐, 해시 테이블 등 다양한 자료구조를 학습하고 사용해 보세요. - 다양한 알고리즘 문제 풀이: 백준 외에도 다양한 온라인 저지(예: LeetCode, Codeforces, HackerRank)에서 문제를 풀어보며 여러 가지 유형의 문제에 대한 이해를 높이세요. - 알고리즘 대회 참여: ACM-ICPC, Google Code Jam, Facebook Hacker Cup 등의 알고리즘 대회에 참여하여 실력을 키우고 경험을 쌓으세요. - 코드 리뷰 및 피드백: 다른 사람들과 함께 공부하거나, 온라인 커뮤니티에서 코드 리뷰를 받아 자신의 코드를 개선하는 경험을 쌓으세요. 2. 대학원 진학 및 머신러닝/딥러닝 관련 준비: 머신러닝 및 딥러닝에 대한 학문적 이해를 높이고 싶다면, 대학원 진학을 고려해 보실 수 있습니다. 대학원 진학을 위해 추가적으로 고려해야 할 사항은 다음과 같습니다. - 선수 지식: 머신러닝 및 딥러닝을 위해 선수 지식으로 선형 대수학, 확률론, 통계학, 최적화, 컴퓨터 비전, 자연어 처리 등을 공부하세요. - 프로그래밍 언어: Python 및 관련 라이브러리(numpy, pandas, scikit-learn, TensorFlow, PyTorch 등)를 익히세요. - 수업 및 강의: 관련 온라인 강의(MOOC)나 대학 강의를 수강하여 이론적 배경을 학습하세요. - 논문 리뷰: 최신 연구 논문 을 읽고 리뷰하여, 최신 기술 동향과 연구 방향에 대한 이해를 높이세요. 구글 스칼라, 아이크리어, arXiv 등에서 논문을 찾을 수 있습니다. - 개인 프로젝트 및 경험: 머신러닝이나 딥러닝 관련 프로젝트를 진행하여 실제 문제 해결 능력을 키우세요. 이러한 경험은 대학원 입학에 큰 도움이 됩니다. - 대학원 입시 준비: 석사 또는 박사 과정에 지원하기 위해 GRE, TOEFL 등 시험 준비와 추천서, 연구 계획서 작성 등을 신경 써야 합니다. 추가 조언: - 네트워킹: 관련 분야의 학회, 워크숍, 세미나에 참여하여 동료 연구자 및 전문가들과 네트워킹을 통해 정보를 교환하고 협력 기회를 찾으세요. - 멘토링: 현업에서 일하고 있는 머신러닝 엔지니어나 AI 연구원, 또는 대학원생들과 함께 공부하거나 멘토링을 받아 실질적인 조언과 지식을 얻으세요. 마지막으로, 끈기와 인내심을 가지고 꾸준한 노력을 통해 머신러닝 엔지니어나 AI 연구원이 되는 길을 걷게 될 것입니다. 공부하며 얻은 경험과 지식을 실제 문제에 적용하여 창의적인 해결책을 찾는 데 열정을 가지세요. 힘든 시기에도 꿈을 향해 계속 도전하면 결국 성공할 것입니다. 행운을 빌어요! ----- ✅ Chat GPT의 답변을 평가해 주세요! - 답변 내용이 올바른지, 틀린 내용은 없는지 댓글로 작성해 주세요.

이 질문 바로 가기

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!