Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Python

데이터 구조와 알고리즘 코딩 과제를 연습할 수 있는 사이트 7개

권현욱(엑셀러) 2023. 11. 13. 17:00
반응형

소프트웨어 엔지니어링에서 데이터 구조와 알고리즘은 중요한 영역 중 하나입니다. 어떤 프로그래밍 언어를 사용하든 데이터 구조와 알고리즘은 중요합니다. 아는 만큼 작업 퍼포먼스를 개선할 수 있습니다. 코딩 과제를 통해 데이터 구조 및 알고리즘에 대한 지식을 연습할 수 있는 최고의 플랫폼을 소개합니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft Excel MVP · Excel 솔루션 프로바이더 · 작가

※ 이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.


  • 원문: 7 Websites to Practice Data Structure & Algorithm Coding Challenges
  • URL: https://www.makeuseof.com/websites-data-structure-algorithm-coding-challenges/

1. 리트코드(LeetCode)

LeetCode는 기술 인터뷰를 준비하는 데 적합한 플랫폼입니다. 여기에는 공통부터 고급 데이터 구조 및 알고리즘까지 다양한 영역을 다루면서 해결할 수 있는 다양한 문제가 포함되어 있습니다. 플랫폼의 집중 코스를 사용하여 기본 사항을 배우고 문제 해결을 시작하는 데 필요한 자신감과 기술을 얻을 수 있습니다. 또한 문제에 대한 편집 솔루션을 제공하여 막혔을 때 가장 좋은 접근 방식을 보여줍니다.

다른 LeetCode 사용자의 솔루션도 볼 수도 있습니다. 고급 사용자를 위해 LeetCode는 다른 사람들과 경쟁하여 문제를 해결하고, 포인트를 얻고, 순위를 올릴 수 있는 정기적인 주간 및 격주 콘테스트를 제공합니다.

2. 해커랭크(HackerRank)

HackerRank는 DSA 기술을 연습할 수 있는 플랫폼입니다. 여기에는 다양한 주제와 언어가 포함되어 있지만 가장 중요한 것은 데이터 구조 및 알고리즘 문제에 대한 전용 섹션입니다. LeetCode와 마찬가지로 코딩 과제를 난이도(Easy, Medium, Hard)별로 정렬할 수 있습니다.

검색, 배열, 트리, 힙, 정렬, 그래프 이론, 동적 프로그래밍, 재귀와 같은 하위 도메인을 기준으로 질문을 정렬할 수도 있습니다. 이 사이트는 모든 개발자가 익숙해야 하는 모든 데이터 구조를 다룹니다. 각 질문 아래에는 답변이 있는 편집 섹션이 있고, 동료로부터 설명과 도움을 구할 수 있는 토론 섹션과 리더보드가 있습니다.

3. 코드워(Codewars)

Codewars는 앞의 두 웹사이트만큼 간결하지는 않습니다. 문제가 다소 무작위로 보일 수 있지만 필터를 사용하면 DSA와 관련된 문제만 표시할 수 있습니다. 데이터 구조 태그를 선택하면 데이터 구조를 볼 수 있고, 동일한 이름의 태그를 선택하면 알고리즘을 볼 수 있습니다. 일본 무술에서 영감을 받은 시스템을 사용하여 난이도별로 과제를 정렬할 수 있습니다.

4. Codility

Codility는 회사가 소프트웨어 개발자를 고용하는 데 도움을 주는 플랫폼이지만 교육 섹션도 제공합니다. Codility는 교육을 도전, 레슨, 연습의 세 가지 범주로 나눕니다.

Codility를 독특하게 만드는 것은 솔루션을 찾을 수 있는 기간을 제공한다는 것입니다. 다른 플랫폼은 콘테스트와 챌린지를 제외하고 문제를 해결하는 데 걸리는 시간만 추적합니다. 인터뷰를 곧 앞두고 있는 경우 이는 특히 중요합니다. 문제 해결 기술을 연습하는 동시에 시간 관리 기술도 연마할 수 있기 때문입니다.

5. 해커어스(HackerEarth)

HackerEarth에는 데이터 구조, 알고리즘, 인터뷰 준비, 수학, 기본 프로그래밍 등을 다루는 연습 탭을 포함하여 여러 섹션이 있습니다. 알고리즘 섹션은 거의 천 개의 문제로 구성되어 있으며, 알고리즘 섹션에는 350개 이상의 문제가 있습니다. 가입 후, 사용하는 언어를 선택해야 합니다.

플랫폼에는 각 문제 아래에 편집 섹션이 있어 솔루션과 그 이면의 사고 과정을 보여줍니다. 유사한 문제를 확인하여 특정 하위 도메인에서 추가 질문을 연습할 수 있습니다.

HackerRank나 LeetCode와 마찬가지로 토론 탭에서는 문제를 해결하는 동안 직면하고 있는 문제에 대해 다른 학생들과 대화할 수 있습니다. HackerEarth에는 정기적인 도전 과제와 경쟁적인 유형의 리더보드도 포함되어 있습니다.

6. Techie Delight

Techie Delight 플랫폼에는 거의 600개의 문제가 있습니다. 이 사이트는 무료이며, 연습하기 위해 계정을 만들 필요가 없습니다. 사이트를 방문하면 첫 번째 문제가 해결되기를 기다리고 있습니다. 사이트를 효과적으로 활용하려면 사용 가능한 필터를 사용하는 것이 좋습니다. 카테고리 및 태그 필터를 사용하여 데이터 구조 또는 알고리즘 관련 문제를 표시합니다.

Techie Delight를 사용하는 데에는 한 가지 단점이 있습니다. 이 글을 쓰는 시점에서는 Python, Java, C++의 세 가지 프로그래밍 언어만 지원합니다. 따라서 사이트를 사용하려면 이 세 가지 언어 중 하나에 익숙해야 합니다. 문제가 발생했을 때 도움을 구하는 데 사용할 수 있는 편집 섹션과 토론 탭도 없습니다.

7. 인터뷰비트(InterviewBit)

InterviewBit 플랫폼에는 600개 이상의 문제가 있습니다. 난이도, 주제, 회사 등 다양한 요소에 따라 질문을 분류합니다. DSA 연습의 경우, 주제 필터를 사용하여 데이터 구조 또는 알고리즘 아래의 특정 하위 도메인에 표시되는 질문을 드릴다운합니다. 질문 탭으로 이동하면 InterviewBit은 힌트 탭을 포함하여 한 단계 더 나아갑니다.

힌트 탭은 문제 해결 방법에 대한 점점 더 자세한 단계와 함께 세 개로 나뉩니다. 힌트를 보면 점수에서 10%가 감점됩니다. 솔루션에 대해 제안된 접근 방식은 최종 점수를 절반으로 줄이며, 전체 솔루션을 볼 경우 전혀 점수를 얻지 못합니다. 이 영리한 기능을 사용하여 원하는 대로 배우고, 연습하고, 테스트할 수 있습니다.