* 알고리즘 너무 약해서 기초 문제 50개 목표로 푸는 중...
* 3시간 안에 답을 내지 못하면 답지를 보고 30분 내로 정답 판정을 받고, 3일 뒤 다시 풀어보기
Greedy
10 / 50
탐색
12 / 50
기초 동적 프로그래밍
10 / 50
투포인터
3 / 10(NEW!)
이분탐색
0 / 10
문제
→ LeetCode 75 / Medium 문제
문제 해결 아이디어
투 포인터 알고리즘 문제
- start를 첫번째 인덱스, end를 마지막 인덱스로 둔다.
- start ~ end를 구간으로 할 때 얻을 수 있는 max_container를 구한다.
- height[start]가 height[end]보다 작으면 start를 늘이고, 그 외에는 end를 줄인다.
- 2 ~ 3 과정을 반복한다.
구현
내 풀이
class Solution:
def maxArea(self, height: List[int]) -> int:
answer = 0
start = 0
end = len(height) - 1
while start < end:
min_height = min(height[start], height[end])
answer = max(answer, min_height * (end - start))
if height[start] < height[end]:
start += 1
else:
end -= 1
return answer
메모
마치며
오..오랜만입니다
'Algorithm' 카테고리의 다른 글
[알고리즘] 프로그래머스 Level 2 - 영어 끝말잇기 (1) | 2023.07.21 |
---|---|
[알고리즘] 프로그래머스 Level 1 - 체육복 (0) | 2023.07.21 |
[알고리즘] BOJ 1495번 - 기타리스트(python3) (0) | 2023.06.23 |
[알고리즘] BOJ 16953번 - A → B(python3) (0) | 2023.06.22 |
[알고리즘] BOJ 14226번 - 이모티콘(python3) (1) | 2023.06.19 |