Leet Code 1일차

Lumi·2021년 11월 2일
0

알고리즘

목록 보기
27/59
post-thumbnail

개인적으로 알고리즘이 가장 어렵다고 느껴져서 14일동안 진행되는 leet코드 연습을 시작 하였다.

🔥 이진 트리 탐색

우리가 알고 있는 탐색이다.

하지만 효율성을 고려하여 배열을 전체적으로 탐색 하는 것은 안되고 log n만큼만 탐색을 진행 하여야 한다.

일단 중간값을 비교를 하면서 중간의 index가 내가 찾고자 하는 target보다 큰지 작은지를 판별해 값을 변형 시켜 준다.

그러다가 left가 right보다 같거나 커지는 경우가 생기는데 이때에는 배열 안에 값이 없는 것이다.

일단 기본 탐색보다는 탐색 범위는 반으로 줄일수가 있다.

  • 왜냐면 중간 값을 비교 하기 때문에

좀더 시간복잡도를 줄일수 있는 코드를 보자면

이와 같다.

문제는 다르지만 형식은 같은 문제이다.

따로 if문을 통해서 left와 right를 비교를 했지만 이렇게 while문의 조건으로도 사용을 할수가 있다.

이 문제 같은 경우에는 규칙을 찾아서 left를 반환 시켜 주었다

  • 나머지는 위에 있는 문제와 동일하다.

후기

아직 까지는 알고 있는 내용이라서 별다른 어려움 없이 해결 했다고 생각한다

  • 하지만 생각보다 시간이 소요 되었는데 이유는
  • 상식적으로는 알고 있지만 어떻게 코드를 작성하냐에 따라 값이 달라지기 때문에 거의 오타 수정에 시간이 많이 소비 되었다.
profile
[기술 블로그가 아닌 하루하루 기록용 블로그]

0개의 댓글