본문 바로가기

알고리즘 문제 및 풀이 사이트 소개 (leetcode)

알고리즘을 관련 문제를 풀면서 알고리즘 관련 학습을 하기 좋은 사이트가 있다.

바로가기 : https://leetcode.com/


알고리즘 문제를 풀려면 해당 사이트에서 가입을 해야 한다.

1. 회원가입 및 로그인

화면 오른쪽 상단 메뉴에서 Sign in 버튼을 클릭한다.

처음 이용하는 경우 Sign Up 버튼을 클릭하여 회원 가입을 한다.

회원 가입 정보는 간단하며 Sign Up 버튼 클릭시 입력한 이메일로 가입 인증 메일이 날라간다.

가입 인증 메일로 인증하면 알고리즘 문제를 풀 수 있다.


2. 알고리즘 문제 풀기

로그인을 하면 상단 메뉴중에 Problems가 있다.

그럼 알고리즘 문제 리스트들이 있다. 난이도는 Easy / Medium / Hard 3단계로 구분되어 있으며 

오른쪽 상단의 Pick One 버튼 클릭시 알고리즘 문제 중 랜덤 문제로 넘어간다.

직접 골라서 풀고 싶은 경우 리스트에서 Title 제목을 클릭하면 해당 문제로 넘어간다.

문제 페이지는 다음과 같이 생겼다. 현재 2019년 2월 15일까지 총 987문제가 있음을 알 수 있다.

부분별로 간략하게 설명하면 다음과 같다.

1. 왼쪽 상단 메뉴

왼쪽부터 문제 내용 / 해결책(문제 풀이) / 제출기록 / 의견으로 보면 된다.


2. 코딩 부분

왼쪽 상단에서 코딩할 언어를 설정한 후 문제를 풀 수 있다.

코딩가능한 언어는 C / C# / C++ / Java / Python / Python3 / JavaScript / Ruby / Swift / Go / Scala / Kotlin / Rust / PHP 이다.

굉장히 다양한 언어가 있으니 언어별 공부도 가능할 것 같다.


3. 제출 부분

오른쪽 하단에 테스트를 할 수 있는 부분이 있다. Console 버튼을 누르면 위와 같은 레이어가 뜨는데 Tastcase를 작성하여 Run Code로 테스트를 해볼 수 있다.

Run Code를 눌러서 오류 없이 적상 작동 했다면 다음과 같은 결과 값이 뜬다.

input은 테스트 값이고 코드에서 출력문을 쓰면 stdout과 같은 문구로 확인 가능하다.

output은 코딩하여 발생하면 결과 값이며

expected는 테스트 input 값에서 발생해야 할 기대 결과 값이다. 

output과 expected가 같아야 해당 input에 대한 정답이라고 할 수 있다.

다양한 케이스로 확인을 했다면 Submit 버튼을 눌러서 최종 확인을 받을 수 있다.

정답이 아닌 경우 왜 틀렸는지에 대한 이유가 노출되니 확인하여 다시 풀어보도록 하자.


4. 정답 확인

정답인 경우 다음과 같은 화면이 뜬다.

해당 코딩에 따른 실행시간과 메모리 사용량을 알려주며 내 코드가 정답자들중 어느정도로 빠른지에 대한 결과 값도 보여준다.

나보다 앞쪽에 있는 그래프를 클릭 시 해당 시간에 걸린 정답자의 코드를 볼 수 있으니 내가 풀이한 코드와 어떻게 다른지도 알 수 있다.


※ 문제들 중에서는 문제의 질이 나쁘거나 알고리즘에 크게 도움이 안되는 문제도 있다. 

그래서 좋은 문제를 풀려면 문제 리스트 화면에서 다음과 같이 정렬하면 된다.

해당 방식으로 정렬하여 상위에 위치한 문제를 풀거나

문제를 들어간 후에 

좋아요 나빠요 표시를 확인하자. 나빠요가 많다는 것은 문제가 그렇게 좋은 문제는 아니라는 뜻이다.


해당 사이트로 알고리즘 역량 상승에 큰 기여가 될 수 있기를 기원한다.

반응형
그리드형