[golang] LeetCode #1. Two Sum

kameals·2019년 12월 10일
1

leetcode

목록 보기
2/14
post-thumbnail

golang을 공부하면서, 동시에 알고리즘 문제풀기

1. 문제

링크
https://leetcode.com/problems/two-sum/

2. 내가 작성한 오답

func twoSum(nums []int, target int) []int {
    sum := 0
    var v[len(nums)] int = nums
    target := 0
    for i := 0; i < nums.len; i++ {
        for j := 0; j < nums.len; j++ {
            sum = nums[i] + nums[j]
            if sum == target {
                return sum
            }
        }
    }
}

틀린 이유

일단 문법공부가 전혀 안 되어있다... 부끄럽지만 남겨놔야지. (2020.03.02에 해결되었습니다. 해결한 글)
아래는 에러내용

Line 3: Char 10: non-constant array bound len(nums) (solution.go)
Line 4: Char 12: no new variables on left side of := (solution.go)
Line 5: Char 25: nums.len undefined (type []int has no field or method len) (solution.go)
Line 6: Char 29: nums.len undefined (type []int has no field or method len) (solution.go)
Line 9: Char 17: cannot use sum (type int) as type []int in return argument (solution.go)
Line 13: Char 1: missing return at end of function (solution.go)

3. 최고 투표 받은 답 (2019-12-09)

func twoSum(nums []int, target int) []int {
    m := make(map[int]int)
    for i, n := range nums {
        _, prs := m[n]
        if prs {
            return []int{m[n], i}
        } else {
            m[target-n] = i
        }
    }
    return nil
}

솔직히 이걸 봐도 아직 무슨 말인지 잘 모르겠다.
이걸 이해하게 되는날 진짜 기쁠것 같다. 성장하자.

4. 추가로 공부한 내용

Go 컬렉션 - Slice

http://golang.site/go/article/13-Go-%EC%BB%AC%EB%A0%89%EC%85%98---Slice

Go 컬렉션 - 배열

http://golang.site/go/article/12-Go-%EC%BB%AC%EB%A0%89%EC%85%98---%EB%B0%B0%EC%97%B4

6장 배열, 슬라이스, 맵

http://www.codingnuri.com/golang-book/6.html

profile
팀의 윤활유 역할이 되고 싶은 소박한 개발자입니다. 좌우명은 '밝고 바르고 튼튼하자'

0개의 댓글