LeetCode (0) - 가입하기 + 테스트 문제

1 분 소요

개요

외국계 기업 재직중이신 분의 인터뷰를 유튜브에서 보다가 실리콘밸리에서는 LeetCode라는 알고리즘 문제 풀이 사이트가 우리나라의 백준, 프로그래머스 등과 같은 문제풀이와 더불어 이력으로도 남는다고 하여 신기함을 느꼈다. 심심해서 가입해보고 간단한 문제를 풀어보았다!


LeetCode 가입

  1. LeetCode의 주소는 https://leetcode.com/이다. 접속하면 다음과 같은 화면을 볼 수 있다.

  2. 우측 상단 Sign in -> Sign up을 누르거나 위 이미지에서의 Create Account를 눌러 계정을 생성한다. 이메일 외의 다른 정보는 들어가지 않아 깔끔하다.

  3. 입력한 이메일로 들어가 컨펌해준다

  4. 다시 https://leetcode.com/로 가서 로그인해주면 끝난다!


기본 예제 풀어보기 (189.Rotate Array)

로그인 후 상단 메뉴의 Explore를 클릭한다. Easy, medium, hard 난이도로 나누어져있고 문제별 솔루션도 풍부하게 제공된다는 Top Interview를 진행하였다. Easy 난이도의 Rotate Array(189) 문제를 풀기 위해 들어갔다.

문제는 다른 알고리즘 사이트들과 마찬가지로 설명과 example set들을 보여준다. 정답 입력 칸은 다음과 같다.

무엇보다 맘에 드는 점은 custom testcase를 만들 수 있다는 점이다! 나중에 복잡한 문제를 풀거나 할 때 굉장히 유용할 것 같다. 쿨하고 좋다 👍

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        for i in range(k):
            num = nums.pop()
            nums.insert(0, num)

class와 rotate함수, 그리고 인자들은 이미 있는 상태에서 return하지 않고 nums라는 list만 수정해주면 된다. 사실 문제 Follow up에 복잡도에 대한 얘기도 있었는데(Could you do it in-place with O(1) extra space?) 대충 넣었다. 왜냐하면 제출을 하고 오피셜한 샘플 코드들을 빨리 보고싶었기 때문이다.

제출 후 코드 입력창 아래부분이 다음과 같이 변함을 확인할 수 있다. More detail에 들어가면 코드 효율성과 다른 제출자들 코드들과의 효율성을 비교할 수 있는 그래프까지 제공해준다. 이제 맨 위로 돌아가 Solution 버튼을 클릭해보자.

우측에는 내가 제출한 코드, 좌측에는 솔루션들이 디스플레이된다. 총 4가지 풀이법이 제공되고 비교하며 더 효율적인 방법이나 인사이트를 얻을 수 있다! 진짜 멋진 점은 각 풀이법들마다 Time/Space complexity까지 보여준다는 점이다.


영어로 알고리즘 문제를 풀어보는 경험이 궁금해 찾아봤는데 문제에 대한 Discussion 과정이 너무나도 잘 되어있어 공부에 도움이 크게 될 것 같다. 세계적인 IT기업들은 어떤 기출문제를 냈는지 파악할 수 있는 것도 멋진 점이다 😁