To Be Developer

[LeetCode] 27. Remove Element(Python, GoLang) 본문

알고리즘/LeetCode

[LeetCode] 27. Remove Element(Python, GoLang)

Jeff Hwang 2019. 4. 29. 02:12

[Python 풀이]

class Solution(object):
    def removeElement(self, nums, val):
        ln = len(nums) # nums 의 길이
        pivot = 0 # pivot index
        self.removeNums(nums, pivot, val, ln)
        return ln
    
    def removeNums(self, nums, pivot, val, ln):
        while ln > pivot: # pivot이 nums의 길이보다 작을 때
            if nums[pivot]==val: # nums의 pivot 번째 element가 val과 같을 때
                del nums[pivot] # pivot 번째 제거
                ln-=1 # nums의 길이 1 감소
                continue # 반복문 건너뜀
            pivot+=1 # 그렇지 않을 경우 pivot 증가

[GoLang 풀이]

package main

func main() {
	var nums = []int{3, 2, 2, 3}
	var val int = 3
	removeElement(nums, val)
}
func removeElement(nums []int, val int) int {
	ln := len(nums)
	var pivot int = 0
	for ln > pivot {
		if nums[pivot] == val {
			nums = append(nums[0:pivot], nums[pivot+1:]...)
			ln--
			continue
		}
		pivot += 1
	}
	return ln
}