반응형
얼마 전에 오랜만에 코딩 시험을 치루며, 구글링 없이 문법조차 다 까먹어 C언어로 제대로 코딩할 수 없던 날 발견했다. Java로 풀어볼까도 했지만, 라이브러리 없이 코딩을 해나가야하는 것도 자신이 없어 시험 시작 1시간 후, 시험을 중도 종료를 하였다. 그래서 이번에 다시 코딩 공부를 시작하며, 8년전 학부 1학년 때 살짝 배웠던 Python을 내 두번째 메인 개발 언어로 만들어 보고자 한다.
오랜만에 코딩공부를 시작하며 LeetCode에 가입하고, 첫 날이니 Easy 에서도 제일 첫번째에 있던 #1 Two Sum을 골라보았다.
Solution
// JAVA
class Solution {
public int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap();
for(int i=0 ; i < nums.length ; i++)
map.put(nums[i], i);
for(int i=0 ; i < nums.length ; i++)
if(map.containsKey(target-nums[i]) && i != map.get(target - nums[i]))
return new int[] {i, map.get(target-nums[i])};
return new int[2];
}
}
Python Dictionaries(딕셔너리)는 Java에서 HashMap과 같은 기능을 하며 key:value 형식으로 값을 저장한다.
선언을 할 때에는 보통은 parameterName = {} 를 사용하고 parameterName = dict()로도 생성가능하다.
(List 생성은 =[], =list())
// Python
class Solution:
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
complement_dict = {} // 딕셔너리 생성
nums_len = len(nums)
for i in range(nums_len):
complement = target - nums[i]
if complement in complement_dict:
return [complement_dict[complement], i]
else:
if nums[i] in complement_dict:
continue
complement_dict[nums[i]] = i
[참고]
leetcode.com/problems/two-sum/
dojang.io/mod/page/view.php?id=2213
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 10825번 - 국영수 (0) | 2021.03.11 |
---|---|
[알고리즘] 백준 1764번 - 듣보잡 (0) | 2021.03.11 |
[알고리즘] 백준 7785번 - 회사에 있는 사람 (0) | 2021.03.11 |
[알고리즘] 백준 1620번 - 나는야 포켓몬 마스터 이다솜 (0) | 2021.03.11 |