2025-10-03 TIL

알고리즘 문제 풀이

오늘도 2레벨 문제에서 정답률이 약간 더 낮은 문제를 풀었습니다.
이번 문제는 자료구조를 잘 선택하고, 시간 복잡도를 최대한 줄여보고자 하는 것이 중요한 문제였습니다.

문자열을 순회하며, 연속된 글자를 제거해 규칙에 맞는 모든 글자를 제거해야했습니다.

이 문제에서 브루트포스로 접근을 하려고 하면 비효율적인 시간복잡도로 시간 초과가 발생해 문제를 틀릴 수 있었기 때문에, 어떻게 효율적으로 알고리즘을 작성할지 고민해야했습니다.
연속된 문자들을 관리하기 위해 자료구조를 고민했었는데, 가장 마지막에 삽입된 값을 알기 위해 벡터나 리스트, 스택 등을 고민했었습니다.

가장 마지막 값에만 접근하고자 하므로, 접근과 삽입이 효율적이며 명시적인 의미로 스택을 선택해 문제를 풀고자 했습니다.
알고리즘에 대한 부분은 문자열의 모든 글자를 접근해야 했기 때문에 $O(n)$의 시간복잡도로 문제를 풀이했습니다.

이것보다 효율적일 수 있을지 고민해보았지만 $O(n)$ 이하로 시간 복잡도를 줄일 수 있는 방법을 떠올리지 못했고, 다른 풀이드를 살펴봤을 때에도 별다른 방법은 알아내지 못했습니다.

이번 문제를 풀면서는 생각보다 어렵다던지 복잡한 부분은 없었고, 짧은 시간내에 성공적으로 문제를 해결할 수 있었습니다.

이번에 푼 문제들에 대해 별도 게시글로 정리해보았습니다.

[프로그래머스][C++] 짝지어 제거하기

아핀 공간의 면 학습

학습한 내용 정리

  • 아핀 공간

학습한 내용은 별도 게시글로 정리했습니다.
[수학] 벡터 공간

느낀점

이번 학습에서는 아핀 공간에 대해 마지막으로 면에 대한 내용을 학습했습니다.
여기서 이야기 하는 면은 점 3개로 이루어져 만들어지는 삼각형을 의미합니다.

이 삼각형이 우리가 게임을 할 때 모니터에 그려지는 과정에서 사용되는 개념이라고 이해했습니다.
추후에 컴퓨터 그래픽스에 대해 학습을 할 때 아핀 공간에 대해 자세하게 학습해본 내용이 크게 도움이 될거라고 생각합니다.

다음 학습 계획

  • 게임 수학
    • 내적과 외적
    • 삼각함수
    • 사원수
  • 알고리즘 문제 풀기

다음 학습에는 내적과 외적을 우선 학습하고자 합니다.
해당 내적과 외적에 대해서는 이전에 학습한 이력이 있지만, 정확하게 이해하고있지 못하는 것 같습니다.
그렇기 때문에 이번 기회에 다시 제대로 학습한다고 생각하고 이득우 선생님의 강의를 집중해서 듣고자 합니다.

알고리즘 문제를 풀며 자료구조와 알고리즘들에 대해 꾸준히 학습되는 부분들이 있고, 다른 사람들이 풀이한 코드를 보면서 학습이 되는 것 도 있기 때문에 계속해서 풀고자 합니다.

Date:     Updated:

카테고리:

태그:

TIL 카테고리 내 다른 글 보러가기

댓글남기기