Algorithm/Study

[99클럽 코테 스터디] 📝 Day35. 스택/큐 2

ioh'sDeveloper 2024. 6. 23. 18:34
99클럽 코테 스터디 35일차 TIL + 스택

📍 오늘의 학습 키워드

  • 슬라이딩 윈도우 (Sliding Window)
  • 덱 (Deque - Double Ended Queue)
  • 시간 복잡도 (Time Complexity)
  • 공간 복잡도 (Space Complexity)

📝 공부한 내용 본인의 언어로 정리하기

오늘은 배열의 연속 부분 배열을 효율적으로 찾는 방법을 배웠습니다. 슬라이딩 윈도우 기법과 덱을 활용하여 주어진 조건을 만족하는 부분 배열의 개수를 계산하는 문제를 해결했습니다. 슬라이딩 윈도우를 사용하여 배열의 범위를 조정하고, 덱을 사용하여 최대값과 최소값을 관리하면서 연산의 효율성을 높였습니다. 이를 통해 O(n) 시간 복잡도로 문제를 해결할 수 있었습니다.

📖 오늘의 회고

📚 어떤 문제가 있었고, 나는 어떤 시도를 했는지

처음 문제를 접했을 때, 모든 부분 배열을 검사하려다 보니 시간 복잡도가 O(n^2)로 증가하는 문제가 있었습니다. 이를 개선하기 위해 슬라이딩 윈도우와 덱을 사용한 방법을 시도했습니다.

슬라이딩 윈도우와 덱을 사용하여 현재 범위의 최대값과 최소값을 효율적으로 추적하고, 조건을 만족하지 않을 때 윈도우를 축소하는 방식으로 해결했습니다. 이를 통해 각 요소를 한 번만 처리하면서 문제를 해결할 수 있었습니다.

🤔 어떻게 해결했는지

🔖 참고링크 (https://develop-tracking.tistory.com/122)

🤓 무엇을 새롭게 알았는지

덱을 활용하여 슬라이딩 윈도우 내의 최대값과 최소값을 효율적으로 관리할 수 있다는 것을 알게 되었습니다. 이를 통해 문제 해결의 효율성을 크게 높일 수 있었습니다.

⏳ 내일 학습할 것은 무엇인지

내일은 다른 유형의 슬라이딩 윈도우 문제를 풀어보고, 다양한 데이터 구조를 활용한 문제 해결 방법을 더 깊이 공부할 계획입니다. 또한, 시간 복잡도와 공간 복잡도에 대한 더 많은 사례를 분석하여 효율적인 알고리즘 설계 방법을 익히고자 합니다.