[1스4코2파] # 181. LeetCode 11. Container With Most Water

gunny·2023년 7월 3일
0

코딩테스트

목록 보기
182/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (181차)
[4코1파] 2023.01.13~ (173일차)
[1스4코1파] 2023.04.12~ (84일차)
[1스4코2파] 2023.05.03 ~ (62일차)

Today :

2023.07.03 [181일차]
LeetCode Patterns
11. Container With Most Water
https://leetcode.com/problems/container-with-most-water/

11. Container With Most Water

https://leetcode.com/problems/container-with-most-water/

문제 설명

문제 풀이 방법

brute force 사용해서 완전 탐색하면 time 초과가 남
two pointer 를 이용해서 푸는 문제
left, right를 움직이면서 안에 있는 물의 면적을 구하는 공식을 잘 산정하면됨
면적은, 오른쪽인덱스의 값에서 왼쪽 인덱스의 값을 뺀 값이 밑변이고
높이는 오른쪽인덱스와 왼쪽인덱스 중 작은 갚이 됨

내 코드

class Solution:
    def maxArea(self, height: list[int]) -> int:
        ans = 0
        left, right = 0, len(height)-1
        
        while left<right:
            area = (right-left) * min(height[left], height[right])
            ans = max(ans, area)
            
            if height[left] < height[right]:
                left+=1
            else:
                right-=1
                
        return ans

증빙

여담

에너지없어

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글