본문 바로가기
python

[PYTHON] leetcode 1. Two Sum 문제풀이

디지털노마드 2021. 3. 15.
반응형

[PYTHON] leetcode 1. Two Sum

 

leetcode 에서 첫번째문제를 python 으로 푸는 중이다. 

 

코딩 테스트라니, 너무 오랜만에 문제를 풀기 시작해서 그런가 영어독해부터 엉망이다. 

 

leetcode-1번문제

 

처음에 주어진 배열의 수에서 nums[0], nums[1] 두개의 수를 더해서 맞으면 return[0] 에 그 차이값, return[1] 에 틀린지 아닌지의 수를 넣는 것이라 생각하고는 엉뚱하게 문제를 풀었다. 문제를 잘 읽어봐야겠다고 다짐한지 30년이 흘렀지만 이건 사실 불가능한 것이었구나를 다시한번 깨닫는다. 

 

그래서 아래와 같은 얼토당토 않은 풀이법이 나오게 된다. 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
     
        myAnswer = nums[0] + nums[1]
        
        if(myAnswer == target):
            mySolution2 = 1
        else:
            mySolution2 = 2
                
        if(mySolution2 == 1):
            mySolution1 = 1
        else:
            mySolution1 = target - myAnswer
                
        return [mySolution1, mySolution2]

 

자 정확한 문제는 주어진 배열중에 어느 위치의 값이던 두 수를 더해서 target 값을 구할 수있다면 그 위치를 알려달라는 문제이다. 아래와 같이 for, range 문을 다시 공부해서 해결을 했다. 

 

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
     
        for i in range(len(nums)):
            
            print(i, len(nums), nums)
            
            
            for j in range(i + 1, len(nums)):
                if nums [i] + nums[j] == target:
                    return [i, j]

 

 

 

[PYTHON] FOR, RANGE 를 이용한 반복문 사용방법 (i, j) 2개변수

[PYTHON] FOR, RANGE 를 이용한 반복문 사용방법 (i, j) 2개변수 한참 찾아보다가 머리가 돌이 된것을 인정하고 그냥 외우기로 했다. 다른 언어에서 for i = 0; i <= 0; i++, for j = 0; j <= 0; j++ 이런식으로 2..

manakim.tistory.com

 

Run Code 를 누르고 Submit 을 누르자 아래와 같은 결과가 나왔다. 

 

1번 문제부터 문법에서 헤매기 시작해서 다소 창피하지만, 일단 하나 푼게 어딘가? 차근차근 공부해 나가자.

 

 

반응형

댓글