(Python, Java) 리트코드 - two sum

[문제 링크]

Python 풀이

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        nums_map = dict()
        for idx, num in enumerate(nums):
            nums_map[num] = idx

        for idx, num in enumerate(nums):
            key = target - num

            value = nums_map.get(key)
            if value is not None and value != idx:
                return [value, idx]

Java 풀이

import java.util.HashMap;

class Solution {
    public int[] twoSum(int[] nums, int target) {
        // 초기화
        HashMap<Integer, Integer> numMap = new HashMap();
        for (int idx = 0; idx < nums.length; idx++) {
            numMap.put(nums[idx], idx);
        }

        int[] answer = new int[2];
        for (int idx = 0; idx < nums.length; idx++) {
            int remain = target - nums[idx];
            if (numMap.containsKey(remain) && numMap.get(remain) != idx) {
                answer[0] = idx;
                answer[1] = numMap.get(remain);
                break;
            }
        }
        return answer;
    }
}

© 2021. By Backtony