본문 바로가기

릿코드 (Leetcode)

왕초보 릿코드 1 - Leetcode

반응형

한국에서는 프로그래머로써 잡인터뷰를 할때 어떤 것을 묻는 지는 경험이 없어 잘 모르겠지만,

잡서치를 열심히 하고 인터뷰자리까지 기회를 얻게 되었을 때

미국이나 캐나다 회사에서 자주 경험하는 것이 코딩 테스트다.

코딩테스트를 회사에서 자체적으로 하는 경우도 많이 있다. 대부분 회사에서 문제를 만들어 인터뷰 보는 사람을 체크 하는 경우가 예전에는 많았다. 하지만 요새에는 Leetcode라는 곳이나 DevSkiller와 같은 코딩 테스트를 할수 있는 툴을 사용하는 경우가 많다고 한다.

 

특히 Leetcode는 무료로 계정을 만들어 혼자 코딩을 연습할수 있다.
여러 언어를 지원하기 때문에 내가 익숙한 언어로 선택후 문제를 풀면 됀다.

(영어와 중국어만 지원한다.)

Leetcode

https://leetcode.com/

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

먼저 계정을 만들고 메뉴위에 있는 Problem 링크를 클릭하면

다양한 퍼즐/문제를 볼수 있다. *프리미엄은 일정의 사용료는 내고 쓸수 있다.

 

그중에 첫번째 문제를 풀어 보았다. - https://leetcode.com/problems/two-sum/

여러 가지를 시도 해보며 밑에 Run 버튼을 누르고 몇가지의 테스트 케이스로 확인할수 있지만, 확답은 아니다.

더 많은 테스트케이스를 거치는 Submit버튼으로 답을 확인 할수 있는데,

여러 경우를 생각해 가며 확실한 답이라고 확정이 될때 Submit버튼을 누르면 된다.

 

난 Python과 PHP 언어로 답을 해봤다. 사람마다 다른 코딩의 결과물은 갖겠지만.. 

일단 나는 밑에 식으로 해봤다.

 

Python3

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        found = {}
        i = 0
        while target - nums[i] not in found:
            found[nums[i]] = i
            i += 1

        return [found[target - nums[i]], i]

PHP

class Solution {

    /**
     * @param Integer[] $nums
     * @param Integer $target
     * @return Integer[]
     */
    function twoSum(array $nums, int $target): array {
        $found = [];
        foreach($nums as $key => $value) {
            $diff = $target - $value;
            if (isset($found[$diff])) {
                return [$found[$diff], $key];
            }
            $found[$value] = $key;
        }
    }
}

 

반응형

'릿코드 (Leetcode)' 카테고리의 다른 글

Leetcode 릿코드 3 - Add Two Numbers  (1) 2023.05.08