Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 피보나치
- golang
- GCP
- Codility
- github
- Observer Pattern
- go
- mobaXTerm
- Backjoon
- kubernetes
- 백준
- Kotlin
- GKE
- BubbleSort
- 그리디
- cpu scheduling
- easy
- k8s
- Programmers
- 알고리즘
- 파이썬
- Python
- Singleton Pattern
- KAKAO
- Top-down
- LeetCode
- Dynamic Programming
- java
- docker
Archives
- Today
- Total
To Be Developer
[LeetCode] 724. Find Pivot Index (GoLang, Python) 본문
https://leetcode.com/problems/find-pivot-index/
[GoLang 풀이]
package main
import "fmt"
func main() {
a := []int{1, 7, 3, 6, 5, 6}
fmt.Println(pivotIndex(a))
}
func pivotIndex(nums []int) int {
// nums의 길이
var numsLen int = len(nums)
// nums 원소들의 총 합
sumNums := 0
// sumNums를 구하기위한 반복문
for _, ele := range nums {
// _ index 사용 x
// ele = nums의 원소
sumNums += ele
}
// 왼쪽 집합의 합
var sumLeft int = 0
// 0부터 numsLen까지 반복
for i := 0; i < numsLen; i++ {
//pivot 은 nums[i]
pivot := nums[i]
// 만약 왼쪽의 합이 오른쪽의 합과 같지 않으면
// pivot을 오른쪽으로 한칸 옮긴다.
if sumLeft != sumNums-sumLeft-pivot {
sumLeft += pivot
} else {
// 같다면 pivot의 index 리턴
return i
}
}
// 반복문을 무사히 나오면 pivot이 없으므로
// return -1
return -1
}
[Python 풀이]
class Solution(object):
def pivotIndex(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# array nums의 원소들의 합
sumNums = sum(nums)
# 왼쪽의 합을 저장한 변수
sumLeft = 0
# nums를 index 와 value를 반복문을 돌린다.
for i, val in enumerate(nums):
# 왼쪽의 합계가 Nums의 전체 합 - 왼쪽합계 - pivot 즉 오른쪽
# 원소들의 합과 다르면 왼쪽의 합을 val 만큼 더한다.
if sumLeft != sumNums - sumLeft - val:
sumLeft += val
else:
# 같으면 i가 pivot 이 된다.
return i
# 무사히 반복문을 빠져나가면 pivot이 없으므로
# -1 을 return 한다.
return -1
if __name__ == "__main__":
nums = [1, 7, 3, 6, 5, 6]
#nums = [-1, -1, -1, 0, 1, 1]
sl = Solution().pivotIndex(nums)
print(sl)
'알고리즘 > LeetCode' 카테고리의 다른 글
[LeetCode] Find the Difference (Python) (0) | 2019.04.03 |
---|---|
[LeetCode] 643. Maximum Average SubArray I (GoLang, Python) (0) | 2019.04.02 |
[LeetCode] 459. Repeated SubString Pattern (JAVA) (0) | 2019.03.31 |
[LeetCode] 26. Remove Duplicates from Sorted Array [GoLang, Python] (0) | 2019.03.31 |
[LeetCode] 66. Plus One (GoLang, Python) (0) | 2019.03.31 |