문제 : https://leetcode.com/problems/container-with-most-water/
Container With Most Water - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이방법
양쪽 끝에 포인터를 한개씩 둔다음에 모든 Area 중에 제일 큰 Area를 반환한다.
코드
class Solution {
func maxArea(_ height: [Int]) -> Int {
var startPoint = 0
var endPoint = height.count - 1
var area = 0
guard endPoint != 1 else {
return min(height[startPoint], height[endPoint])
}
while startPoint < endPoint {
let width = endPoint - startPoint
var newArea = 0
if height[startPoint] < height[endPoint] {
newArea = width * height[startPoint]
startPoint += 1
} else {
newArea = width * height[endPoint]
endPoint -= 1
}
area = max(area, newArea)
}
return area
}
}
반응형
'알고리즘' 카테고리의 다른 글
[BFS] 음식물 피하기 - baekjoon Swift (2) | 2021.08.24 |
---|---|
[DFS] N과 M - baekjoon Swift (0) | 2021.08.23 |
[Stack] Validate Stack Sequences - LeetCode Swift (0) | 2021.08.17 |
[Stack] 과제는 끝나지 않아! - Baekjoon 17952번 Swift (0) | 2021.08.13 |
[투포인터] Minimize Maximum Pair Sum in Array - LeetCode Swift (0) | 2021.08.11 |