리트코드는 굉장히 유용하고 잘 짜여있는 사이트이지만, 실제로 릿코드에 들어오는 사람들의 실력차가 큰 편이라고 생각합니다. 누군가는 리트코드나 알고리즘 공부를 처음 하는 사람일 수 도있고, 누군가는 알고리즘에 능통하지만 단지 이런 유형의 인터뷰 준비를 처음 하는 사람, 혹은 각종 대회를 휩쓰는 알고리즘계의 고수도 있습니다.
릿코드(leetcode) 사이트 자체가 문제은행 형식으로 출발했기 때문에, 어찌 보면 이 사이트가 왕초보에게는 조금은 불친절할 수 있다는 것도 사실이라고 생각합니다. 그러나, 릿코드에서는 이런 부분을 감안하여 [Exploar > Learn] 섹션을 제공하며, 이 [Explore > Learn]이라는 섹션을 잘 활용하면, 알고리즘에 대한 기초 지식도 쌓고, 리트코드에 익숙해지는데 많은 도움이 되리라 생각합니다.
이제 카드를 하나 골라서 같이 풀어보겠습니다. 제가 고른 카드는 첫 번째에 나와있는 Arrays 101입니다.
1. 먼저 주어진 설명을 잘 읽어봅니다.
아래 캡처화면의 왼쪽을 보면 우리가 현재 어느 페이지를 보고 있는지 알 수 있습니다. 현재 우리는 Overview를 살펴보고 있습니다.
릿코드 익스플로어 > 런 섹션의 어레이 101
설명을 잘 읽어보니 이 단원을 배우고 나면 배열에 대한 기본적인 지식을 쌓게 되는 것 같습니다.
2. 첫 번째 파트를 다 읽었으면, 다음 파트로 넘어갑니다.
이 Array 101이라는 파트 자체가 초보를 위한 것이기 때문에, 다음 파트에서도 Array 가 무엇인지 설명하는 데에 많은 시간을 할애합니다. 위에서부터 찬찬히 설명을 읽어내려가다 보면 드디어 5번째에서 코딩문제를 마주하게 됩니다.
3. 코딩문제를 풀어봅니다.
코딩문제는 아래와 같이 생겼습니다. 푸는 방법이 아리송하다면 아래의 힌트를 눌러봅니다.
힌트를 누르니, 힌트 패널이 펼쳐졌습니다.
힌트를 눌러도 잘 모르겠다면, 맨 위로 올라가 [Solution] 버튼을 눌러 솔루션을 봅니다.
문제를 얼마나 붙들고 있다가 솔루션을 펼쳐 보아야 하는가?라는 것에 대해서 의견이 분분합니다만, 대부분의 사람들은 1문제당 문제 풀이를 고민하는 시간이 최대 1시간을 넘기지 않아야 한다는 생각에 동의할 것이라고 생각합니다. 특히나, 리트코드의 [솔루션] 이라는 것은 단순히 답만을 공개하는 것이 아닌, 그 답으로 가기 위한 친절한 안내서 같은 것이라고 생각합니다. 다른 말로 하면, 물고기를 잡아주는 것보다 물고기를 잡는 방법을 알려주는 것에 더 가깝다고 볼 수 있습니다. 그래서 저는 문제를 풀고 나서도 솔루션을 꼭 읽어볼 것을 추천드립니다. 정말 많은 것을 배울 수 있습니다.
리트코드의 솔루션 섹션은 대부분 유료회원에게만 공개되어 있으므로, 유료회원 가입을 고려해 보시기 바랍니다. 아래의 글에서 유료회원을 왜 해야하는지, 어떤 것들이 제공되는지 파악하실 수 있습니다.