luckyquit   4년 전

안녕하세요 저는 현재 대학교 4학년 재학중인 일개 개발자 꿈나무 입니다...

삼성 소프트웨어 직군으로 진로를 결정하게 되었고, 뒤늦게 부랴부랴 알고리즘을 시작하게 되었어요.

주변에 삼성 SW 직군 다니는 선배가 있어서 많은 도움을 받고 있습니다.

그 선배 말로는 DFS, BFS가 정말 중요하다고 그러더군요..

DFS, BFS가 깊이우선 넓이우선 이고 그래프 관련 기법 이라는 것 정도만 알고 있습니다.

알고리즘과 자료구조를 수강할 때 모든 자료구조를 안보고 구현해보진 않았던 거 같아요.

지금은 자료구조들의 장점과 단점을 알고 구현을 하게 된다면 이렇게 구현해야 되겠구나 정도? 인거 같습니다.

참고로 자료구조 공부했을 때 이진트리까지만 공부하고 그래프 부분은 보지도 않았습니다.....

알고리즘은 뭐 정렬, 분할정복, 그리디, 등등 뭐 기억나는게 이정도 뿐이네요. 물론 이 안의 모든 알고리즘이 기억난다는 게 아닙니다

그냥 정말 쉬운 수준의 알고리즘 정렬이나 길 찾는 알고리즘?(벨만포드 플로이드)이런거는 직접 코딩 해봤던 거 같아요

예전에 해봤던 것들도 코딩하라고 하면 이론을 다시보고 이해하고 하면 대충 3시간 정도는 걸리지 않을까요...

오늘에서야 코드포스와 같은 사이트를 알게 되었습니다. 얼마나 제가 미천한 개발자인가 알게해주는 곳이었죠.

늦은 건 알고 있습니다. 그래도 지금에라도 시작하게 되어 정말 다행이라고 생각해요. 올해 졸업한 형들 몇명은 이제야 시작하는 사람들도 있거든요

전 반드시 할 수 있을거라 생각하고 그래야만 해요.


그래서 전문가분들께서 알고리즘 풀어보는 순서를 추천해주셨으면 합니다. 일종의 커리큘럼?같은

그리고 제 수준을 봤을 때 이거 해봐라 같은 조언해주실 말씀도 댓글로 남겨주세요



모든 개발자들 화이팅

djm03178   4년 전

한 가지를 명확히 하시는 것이 좋습니다. 질문자님은 알고리즘을 잘 하고 싶으신 건가요, 아니면 삼성 시험을 잘 보고 싶으신 건가요?

이 질문에 대한 대답에 따라서 공부하셔야 할 건 굉장히 달라질 수 있습니다.

ha_ram   4년 전

https://www.acmicpc.net/workbook/view/1152 

삼성 준비하시는거면 여기에 있는 문제들 풀어보시는게 좋을것 같아요

https://www.youtube.com/channel/UC_KRcBNnFQoN6EsvG87H6cg

이분 youtube에 풀이법과 생각하는 방법이 너무 잘 나와있어서 추천해드립니다. 저도 많이 배웠어요 ㅎㅎ

그리고 기초부터 하고 싶으시다면 단계별로 풀어보기에 bfs dfs문제들도 풀어보시길 바랍니다.

저도 4학년이고 공부할수록 너무 어려운게 많아서 힘들어요 ㅜㅜ

같이 열심히 해봐요 ^^

yoonsang9114   4년 전

저는 알고리즘을 잘하고싶은데 정말 많이 어렵네요

개념을 공부하고 심화 문제를 풀려고 하면 부딛혀서 쉬운 문제를 더 풀어보자는식으로 내가 못푼 문제 탭을 쭉미는데 푼 문제수는 늘지만 실력은 안느는거같고.. 너무나 어렵고 힘이듭니다

luckyquit   4년 전

djm님 에게

둘다 맞지만 우선은 기업의 코딩테스트를 통과하는 게 목적이 되어버린거 같아요. 예전에도 수업들을 때 알고리즘 자료구조는 재밌게 들어서 좋아했었어요. 다만, 지금은 취업을 우선 목적으로 하고 있어요.

ha_ram

동지가 있군요ㅎ 목표 기업이 어디신가요?

화이팅 하세요!

luckyquit   4년 전

윤상님

저 같은 경우는 쉬운 문제들은 다 걸렀어요. 예를들면 반복문이나 출력부분 같은것들? 처음 시작을 배열 알고리즘으로 시작했습니다. 사실 알고리즘 문제는 예전부터 아주 조금씩 풀어봤지만 본격적으로는 최근에 하게 됐어요.

음, 저같은 경우는 못 푼 문제를 넘기기보다는 2-3시간 정도 더 해보고 정 모르겠다면 다른 사람의 소스를 봤습니다! 그것도 많은 공부가 되는 거 같아요

yoonsang9114   4년 전

저는 뭔가 어려운데 될것도 같더라던지 아이디어는 있는데 구체화를 못시키는 경우 되게 아깝다고 생각해서 이런경우에는 오래 생각하게 되더라구요 길면 이틀에서 3일정도 같은 문제를 봅니다.. 아예 모르겠으면 힌트정도만 얻어보는식으로 했네요

alice   4년 전

애초에 기업 코딩테스트 통과가 목적이시면 대회에서나 볼법한 알고리즘들을 전혀 공부하실 필요가 없습니다.

코딩테스트에서 나오는 문제 유형들은 어느정도 정해져 있습니다. 그 유형의 수가 많은 편도 아니기 때문에 기출문제를 풀어보고 대비하시면 되겠습니다.

대표적인 유형으로는 완전탐색, DFS, BFS, DP정도가 있겠네요. 자료구조나 정렬 또한 직접 구현할 수 있는지 알아보는 기업도 있기 때문에 공부해두시는게 좋습니다.


코드포스는 세계적인 대회 사이트입니다. 대회용 알고리즘을 따로 깊게 파지 않으면 모를 수 밖에 없고 이에 주눅드실 필요가 전혀 없습니다.

노파심에 말씀드리지만 프로그래밍은 기초가 매우 중요합니다. 취업에서는 대회에서나 볼법한 고급 알고리즘을 묻지도 않을 뿐더러 실무에서 그런 능력을 거의 요구하지도 않습니다.

현시점에서 작성자님이 알고리즘을 깊게 파시기로 다짐하셨다면, 저는 차라리 컴퓨터 과학에 있어서 필요한 여러 분야들의 기초 지식과 개발 경험을 쌓으시기를 권하고 싶습니다.

djm03178   4년 전

alice님이 제가 드리고 싶은 말씀을 대신 해주셨네요.

기업 코딩 테스트가 알고리즘 능력을 묻는 시험인 것 같지만, 실제로는 알고리즘을 공부하면서 배울 수 있는 것들과는 많이 다릅니다. 코딩 테스트는 윗분들이 말씀해주신 것처럼 BFS, DFS와 같은 탐색류와 모든 경우의 수를 다 해보는 브루트포스류의 문제가 대부분을 이룹니다. 즉, 정교하고 긴 코드를 실수 없이 구현해내는 데에 초점을 두고 있는 것입니다.

반면에 알고리즘을 공부한다고 하면 그와는 비교할 수 없을 정도로 다양한 종류의 지식을 가지고 있어야 합니다. 수많은 자료구조들은 물론이고, 다양한 수학적 지식, 그리고 논리적인 사고력도 갖춰야 합니다. 코딩 테스트는 이 중 매우 한정된 영역만을 집중적으로 테스트하는 경향이 크고, 실제로 알고리즘의 다른 부분들은 실무에서 사용할 만한 일이 거의 없기 때문에 애초에 시험에 내지도 않습니다.

질문자님이 알고리즘을 공부하려는 이유가 정말로 이 알고리즘이라는 분야를 잘 하고 싶어서인지, 아니면 기업 코딩 테스트를 통과하는 것만이 목표인지 잘 생각해 보시고 결정해 보시면 좋겠습니다.

https://blog.encrypted.gg/category/%EA%B0%95%EC%A2%8C/%EC%8B%A4%EC%A0%84%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

이미 기초가 있으시니 A형 수준은 금세(=길게 잡아도 2~3개월?) 도달하실 것 같아요. 제 블로그에 있는 강의 홍보하고 갑니다...^^77

댓글을 작성하려면 로그인해야 합니다.