[1스4코2파] #140. LeetCode (1. Two sum)

gunny·2023년 5월 23일
0

코딩테스트

목록 보기
141/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (140일차)
[4코1파] 2023.01.13~ (131일차)
[1스4코1파] 2023.04.12~ (42일차)
[1스4코2파] 2023.05.03 ~ (21일차)

Today :

2023.05.23 [140일차]
LeetCode
1. Two Sum
https://leetcode.com/problems/two-sum/

문제 설명

문제 풀이 방법

이중포문으로 돌릴 순 있지만 그러면 시간복잡도가 O(N2)이셔요.
예전에 프로그래머스에서 풀었던 비슷한 문제에서 발견했던 솔루션을 기반으로 풀기 완

nums를 순차적으로 돌면서 target과의 값을 빼서 인덱스와 함께 tmp 딕셔너리에 저장하고, nums가 tmp 딕셔너리에 있는 값에 있다면 그 키값에 해당하는 value가 현재 nums와 합해서 target값이 되는 요소의 인덱스이므로, 그 인덱스와 현재 인덱스를 return 완!

내 코드

class Solution:
    def twoSum(self, nums, target: int):
        tmp = {}
        
        for i in range(len(nums)):
            if nums[i] in tmp:
                return [tmp[nums[i]], i]
            
            tmp[target-nums[i]]=i
            
        return answer
        

증빙

여담

알고리즘 dp 나오고 bit 문제나와서 도망쳤더니
알고리즘 12에서 닫혀서 다시 시작해야하는게 함정

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글