TIL

TIL_20230307

번잔중 2023. 3. 7. 23:57

오늘 할 일

  • LeetCode 데일리 문제 풀기
  • Heart
    • 프로필 이미지 가입하면서 받는 것으로 수정 필요
    • OAuth2 google에서 성별, 생년월일 API 사용 고려해봐야 할 듯

오늘 배운 것

LeetCode 데일리 문제 풀기

  • 오늘의 문제: 2187. Minimum Time to Complete Trips(https://leetcode.com/problems/minimum-time-to-complete-trips/)
  • 문제 조건
    • time 배열이 주어지고 time[i]는 bus를 타고 여행하는데 걸리는 소요시간이다.
    • totalTrips가 주어지는데 time 배열에 있는 차량의 운행 횟수가 최소가 되는 시간을 찾는 문제이다.
  • 문제 해결
    • 이진 탐색으로 해결하는 문제이다. 내가 보통 문제를 보면서 이유 없이 그리디인가 싶은 문제들은 parametric search 문제인게 참 신기할 따름이다.
    • 해당 문제에서 찾는 값은 배열 내에 있지 않다. 오히려 특정 범위를 설정해주고 그 범위 사이에 있는 정답을 찾아가는 문제이다.
    • 나는 문제에서 제시된 조건을 기반으로 범위를 설정해주었다. (물론 주석 처리한 부분처럼 배열의 최댓값과 totalTrips를 곱해주는 것이 더 나은 방법이다.)
    • 이진 탐색으로 시작해서 totalTrips에 가까워지는 값을 찾아야 한다. 그래서 나는 makeTotal이라는 메소드를 만들어 time 배열에 있는 모든 값으로 mid를 나눈 값을 더한 값(value)과 totalTrips를 비교해주면서 범위를 좁혀나갔다.
    • Thx jongwuner :)
 

GitHub - chaning49/LeetCode

Contribute to chaning49/LeetCode development by creating an account on GitHub.

github.com

OAuth2 적용해보기

  • google oauth2에서 개인정보를 추가로 사용하는 방법 → 코드 상 추가하는 방법을 아직 찾지 못했고, 일정 지연으로 인해 우선 생년월일과 성별은 처음부터 수집하지 않고 마이페이지 화면으로 연결하는 것으로 마무리...

느낀점

  • 리트코드에서 parametric search 문제가 다시 나왔습니다. 이번에도 그리디 문제라고 생각했지만 아니었쥬? ㅋㅋㅋ 그래서 친구에게 다시 설명 듣고 저번보다 5% 더 이해했습니다!
  • 프로젝트를 하면서 진짜 바짓가랑이 잡고 매달리면 안될게 없다고 생각했는데, 이것 저것 몇 일 동안 하면서 잘 안됐습니다. 그래서 일단 다른 중요한 할 일들을 먼저 해놓고 나중에 다시 해보기로 했습니다! 포기란 없습니다.

내일 할 일

  • LeetCode 데일리 문제 풀기
  • Heart
    • 토큰 재발행 기능 수정