๋ฐ์ํ
- pivot ์ธ๋ฑ์ค๋ ์ธํ ์ค์ ๋ชจ๋ ์ผ์ชฝ ์์์ ํฉ๊ณผ ์ค๋ฅธ์ชฝ์ ๋ชจ๋ ์์์ ํฉ์ด ๊ฐ์ ์ง์ ์ ์ธ๋ฑ์ค
class Solution {
func pivotIndex(_ nums: [Int]) -> Int {
var rightSum = nums.reduce(0, +) - nums[0]
var leftSum = 0
if rightSum == leftSum {
return 0
}
for index in 1..<nums.count {
leftSum += nums[index - 1]
rightSum -= nums[index]
if leftSum == rightSum {
return index // pivot index
}
}
return -1
}
}
var rightSum = nums.reduce(0, +) - nums[0]
- ์ด๋ ์ด ์ ์ฒด ํฉ์ ๊ตฌํจ. ์ฒ์ ํผ๋ด ์ธ๋ฑ์ค๋ ์ด๋ ์ด์ 0๋ฒ์งธ ์ธ๋ฑ์ค -> ํผ๋ด ์ธ๋ฑ์ค ๊ธฐ์ค ์ผ์ชฝ ํฉ, ์ค๋ฅธ ์ชฝ ํฉ์ ๊ตฌํด์ผ ํ๋ฏ๋ก ์ ์ฒด ํ์์ ํ์ฌ ์ธ๋ฑ์ค ๊ฐ์ ๋นผ์ค
if rightSum == leftSum {
return 0
}
- ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค์์ ์ผ์ชฝ ํฉ, ์ค๋ฅธ ์ชฝ ํฉ์ด ๊ฐ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ ํผ๋ด ์ธ๋ฑ์ค ์ด๋ฏ๋ก 0์ ๋ฆฌํดํจ (์ธ๋ฑ์ค 0์ด ํผ๋ด ์ธ๋ฑ์ค)
- ์ ์ฒด ํฉ S์์ ํ์ฌ ํผ๋ด ์ธ๋ฑ์ค ๊ฐ nums[0] ๋บ ๊ฐ์ธ rightSum = S - nums[0] ๊ณผ leftSum (์ด๊ธฐ ๊ฐ 0)์ ๋น๊ต
for index in 1..<nums.count {
leftSum += nums[index - 1]
rightSum -= nums[index]
if leftSum == rightSum {
return index // pivot index
}
}
- 0 ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋น๊ต ํ์ผ๋ฏ๋ก 1 ๋ถํฐ ์ ์ฒด ๊ฐฏ์ - 1 ๋งํผ for๋ฌธ์ ๋๋ ค ๋ฐ๋ณตํจ
- ์ด์ ํผ๋ด ๊ฐ์ leftSum์ ๋ํด ๊ฐ๋ฉด ํผ๋ด ์ธ๋ฑ์ค ๊ธฐ์ค ์ผ์ชฝ ์ด๋ ์ด ํฉ์ ๊ตฌํ ์ ์์
- rightSum์ ํ์ฌ ํผ๋ด ์ธ๋ฑ์ค ๊ฐ์ ๋นผ์ฃผ๋ฉด ๊ตฌํ ์ ์์
- ๋ง์ฝ leftSum ๊ณผ rightSum์ด ๊ฐ๋ค๋ฉด ํผ๋ด ์ธ๋ฑ์ค ์ด๋ฏ๋ก ์ด๋ฅผ ๋ฆฌํด
return -1
- ๋ง์ฝ ํผ๋ด ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด -1์ ๋ฆฌํดํ๋ฉด ๋จ
class Solution {
func pivotIndex(_ nums: [Int]) -> Int {
var rightSum = nums.reduce(0, +)
var leftSum = 0
for index in 0..<nums.count {
rightSum -= nums[index]
if leftSum == rightSum {
return index
}
leftSum += nums[index]
}
return -1
}
}
- for ๋ฌธ์ 0 ๋ถํฐ ์์ํ๊ฒ ํ๊ณ ์ถ๋ค๋ฉด ๊ฐ๋จํ๊ฒ ์์ ๊ฐ์ด ํ ์ ์์
์ฐธ๊ณ ์ฌ์ดํธ ๋ฐ ๋์
https://leetcode.com/problems/find-pivot-index/solution/
728x90
๋ฐ์ํ
'๐ Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 704. Binary Search (0) | 2022.08.15 |
---|---|
[LeetCode] 1480 Running Sum of 1d Array (0) | 2022.07.29 |
[leetCode] 13. 3Sum (์๊ณ ๋ฆฌ์ฆ, ์๋ฆฌ) with Swift (0) | 2020.11.04 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ with python (feat. hash) (0) | 2020.10.13 |
[leetCode] 152. Maximum Product Subarray ์นด๋จ ์๊ณ ๋ฆฌ์ฆ์ ๋ณํ (0) | 2020.10.12 |
๋๊ธ