Skip to content

Instantly share code, notes, and snippets.

@shoark7
Last active April 27, 2024 16:31
Show Gist options
  • Save shoark7/38bcff39588b528d37313a669fdfd75d to your computer and use it in GitHub Desktop.
Save shoark7/38bcff39588b528d37313a669fdfd75d to your computer and use it in GitHub Desktop.
개인적으로 사용했던 알고리즘 사이트들을 추천드립니다.

알고리즘이라고 많이 들어보셨을 겁니다. 알고리즘은 교과서식으로 정의해보면 '문제를 해결하는 일련의 절차'라고 할 수 있는데요. 컴퓨터로 어떤 문제를 해결해야 할 때, 코딩으로 어떻게 해결할지에 대한 구체적인 방법을 이야기합니다.

예를 들어, 숫자 배열을 정렬하는 문제가 있다고 합시다. 인간이 배열을 대충 보고 정렬하기는 쉽지만 원소의 개수가 수백만개에 달하는 배열에서 컴퓨터에게 일을 시켜서 컴퓨터가 정렬하게 하는 것은 쉽지 않습니다. 실제로 정렬은 알고리즘에서 매우 유명하고 기초적인 분야로 정렬을 하는 방법, 즉 알고리즘이 지금까지 알려진 것만 해도 수십가지가 됩니다.

알고리즘을 공부하는 것은 꽤 도움이 되는데요. 일단 코딩을 시작하시는 분들 입장에서는 코딩을 하게 되서 코딩과 문법에 익숙해지는 장점이 있고, 또 개발자적 사고를 하는 데 알고리즘 문제를 푸는 것이 도움이 됩니다. 어떤 개발 회사들은 알고리즘 능력을 테스트하기 때문에 취업을 목표로 공부하신다면 손해는 보지 않습니다.

저는 알고리즘을 좋아해서 조금씩 풀어왔는데요. 알고리즘을 풀 수 있도록 문제를 내주는 사이트들이 정말 많습니다. 오늘은 그중에서 몇 가지만 소개해드리겠습니다. 사이트는 정말 많은데요, 그중에서 제가 최소 몇 번이라도 써본 사이트들만 소개하겠습니다. 더 좋은 사이트들이 있으면 소개해주시면 추가할 수 있을 것 같습니다.


사이트 소개

  • 백준 온라인 저지
    • 여기가 우리나라에서 꽤 유명합니다. 최백준 씨인가요? 그분이 운영하는 사이트로 알고리즘 동영상 강의도 만드시고 이곳에서 비공식 대회도 많이 열리는 등 좋습니다.
    • 무엇보다 정말 많은 문제가 있지만 초보자 입장에서 '단계별로 풀어보기' 섹션을 통해 쉬운 문제부터 조금씩 풀어보는 게 도움이 많이 됐던 것 같습니다.
  • 알고스팟
    • 여기도 유명한데요. 이 사이트가 유명한 이유는 다른 무엇보다도 우리나라에서 매우 유명한 알고리즘 공부 서적인 이 책의 저자인 구종만 씨가 운영하는 사이트이기 때문입니다. 흔히 '종만북'이라고도 하는데요. 이 책의 많은 예제 문제가 알고스팟의 문제로도 활용되고 있습니다.
    • 여기는 (제 입장에서는) 수준이 꽤 높습니다. 실제 알고리즘 대회에서 나올 법한 문제가 많은데요. 저 책을 사서 공부할 때 울면서 공부한 기억이 있습니다. 사실 2권을 모두 끝내지도 못하고 잠시 방황하고 있는 상태입니다. '알고리즘으로 취업까지 해야겠다'고 생각하시는 분들에게는 이 책과 사이트가 괜찮습니다.
  • 프로젝트 오일러
    • 여기는 제 입장에서 맨 처음 공부할 때 썼던 곳입니다. 오일러가 매우 유명한 수학자이죠. 120문제 정도가 단계별로 있는데 '수학적'인 문제들에 특화되어 있습니다. 수학 자체를 좋아하시는 분들에게는 지적인 유희가 충만할 것 같은 곳입니다. 저도 한 30번대인가 까지 하다가 막힌 기억이 있네요.
  • 프로그래머스
    • 단순히 알고리즘 문제를 풀고 끝나는 것이 아니라, 구직자와 회사를 연결해주는 플랫폼까지 겸하고 있는 곳이 있는데요. 프로그래머스가 딱 그런 곳입니다. 일단 문제만 보면, 딱 취직 코딩테스트에 나올법한 문제들이 많습니다. 코딩 테스트에서 전형적으로 출제될법한 알고리즘 문제들이 많았던 것 같습니다. 이곳의 단점은 제가 볼 때 문제 검증이 들쭉날쭉입니다. 가령 테스트케이스가 빈약해서 틀린 알고리즘으로도 통과한다든가 하는 예가 종종 있습니다. 알고리즘 연습 서비스가 프로그래머스(정확히는 grepp)의 핵심사업이 아니라는 것을 여실히 보여주는 증거가 아닌가, 저는 생각합니다. 그래서 여기는 문제통과를 하더라도 질문창을 꼭 눌러서 다른 사람들의 의견을 확인해보시기를 권장드립니다.

  • Codewars
    • 코드워즈라고 여기서부터는 외국 사이트입니다. 여기는 최근에 제가 쓰고 있는 곳인데요. 꽤 매력적입니다. 문제에 등급이 있고 문제를 해결해 유저가 등급을 올릴 수 있는 랭크제를 도입하고 있습니다. 저도 랭크 올려서 배지의 색깔을 바꾸기 위해 혈안이 된 적이 있었는데요. 곧 보라색을 위해 달려갈 생각입니다.
    • 이곳의 장점은 유저들이 직접 문제를 만들고, 문제의 난이도 등급을 유저들이 평가하는 등 원한다면 유저들이 적극적으로 참여할 수 있다는 것입니다. 저는 그렇게 적극적으로 활동하지는 않습니다만 원하면 외국 사람들이랑 대화하고 놀 수도 있습니다.
    • 단점은 유저들이 직접 문제를 내다보니, 취직용 코딩 테스트에는 최적화되지 않은 문제들이 많다는 것입니다. 단순 유희를 위한 수학문제나 프로그래밍 디자인 패턴, 객체 지향 프로그래밍 문제 등에서 그렇게 느꼈습니다.
  • Codility
    • 여기는 외국용 '프로그래머스' 같은 곳입니다. 회사를 위해 구직자에게 코딩 테스트를 직접 내주는 아옷소싱 일을 하고 있습니다.
    • 그와 동시에 알고리즘 훈련을 할 수도 있는데요. 여기도 단계별로 쉬운 문제부터 어려운 문제까지 있는데요. 제 인상에 여기는 문제 질이 참 좋습니다. '문제 자체가 좋다'라는 느낌을 받아서요. 충분히 공부해볼만 합니다.

만약 프로그래밍이나 알고리즘에 입문하시는 분들에게는 개인적으로 백준 온라인 저지Codewars를 추천합니다. 백준에서는 단계별로 진행되는 문제에서 매우 쉬운 문제부터 시작해나갈 수 있고, Codewars에서는 문제 등급을 봐가면서(8급이 제일 쉽고, 1급이 제일 어렵습니다.) 본인에게 적합한 문제를 풀 수 있습니다.

알고리즘을 공부하는 건 충분히 가치 있는 일입니다. 일단 코딩 자체에 익숙해지시는 게 중요하니까요. 시간 날 때 짬짬이 쉬운 문제부터 풀어보시면 도움이 될 것 같습니다.

한 주 고생 많으셨습니다!!

@taerangbae
Copy link

구름LEVEL 도 괜찮은 사이트 입니다. LG전자, NHN 등 기업에서 사용중인 코딩테스트 플랫폼과 동일한 플랫폼으로 알고리즘 문제를 제작하고 풀 수 있습니다.

@qkrtmdgns23
Copy link

좋은 정보 감사합니다!

@calculus0129
Copy link

감사합니다.

@ljhyeok
Copy link

ljhyeok commented Apr 1, 2024

소중함 경험을 공유 해주셔서 감사합니다~ 오랜만에 백준 들어 가봐야겠네요ㅎㅎ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment