Skip to content

Latest commit

 

History

History

TwoPointers

기록

Backjoon.투 포인터 문제

문제 이름 - 날짜 0뽀 - 성능
  • - [문제 링크]()
  • - 공개한 1등 기록:
  • - 추정 시간 복잡도:
  • - 문제 핵심
  • - 해결 과정
  • - 다른 코드 감상 및 배울 점
  • - 궁금하다! 더 공부하고 싶다!
  • - 하고 싶은 말
  • - [노션 링크]() - 다른 코드 및 틀린 코드 확인

용액_2467 - 23/11/24 1.5뽀 - 29116KB 364ms - 56등 ^_^..!
  • 문제 링크
  • 공개한 1등 기록: 17088KB 196ms
  • 문제 핵심
    • 투 포인터 이용해 조건에 맞는 수에 가까워질 때까지 찾기
  • 해결 과정
    • 0과 가까운 수 → abs 이용해서 비교, 가장 가까운 수면 저장해서 비교
    • 특성값(합) < 0 면 무조건 left ++, 특성값(합) > 0 면 무조건 right-- (음수 양수 혼합, 모두 음수, 모두 양수일 때도 동일)
    • 이진 탐색 → l, r 하나씩 위치 조정 필요해서 투포인터구나!
  • 다른 코드 감상 및 배울 점
    • 어차피 0 포함 0과 가까우면 저장해 주니, 0일 때 break하지 않고, 그냥 끝까지 진행
  • 궁금하다! 더 공부하고 싶다!
    • 이분 탐색으로 하는 법..!
    • 이분 탐색과 투포인터 구분?
  • 하고 싶은 말
    • 두 용액이랑 똑같다 했더니… 정말…이었고, 심지어 두 용액이 더 어려운 문제였던 게 웃기다 ㅎㅎ…… 정렬하는지 아닌지의 차이긴 하지만…
    • 역시 투포인터 문제를 더 풀어봐야 할 듯. 아직 이진 탐색과 구분하는 법도 어렵다.
  • 노션 링크 - 다른 코드 및 틀린 코드 확인
(Hint*3) 예산 - 23/11/18 3뽀 - 15228KB 164ms
  • 문제 링크
  • 공개한 1등 기록: 14264KB 136ms
  • 문제 핵심
    • 근접한 것 중 가장 큰 값 찾기
  • 해결 과정
    • 투 포인터 이용
    • 투포인터에서 r, l, m 중 어떤 걸 언제 출력해야 할지 감이 잡히지 않음. → 결국 정답 게시판 참고해 풂
  • 다른 코드 감상 및 배울 점
    • left<=right 동안 r 대신 l-1 출력도 가능
    • left > right면 max 결과에 저장, sum > M일 때, max에 max 저장, sum ≤ M 이면 mid 저장, mid - 1 / +1
  • 궁금하다! 더 공부하고 싶다!
    • mid - 1 / +1 → 그냥 mid만 할 때랑 이렇게 -1, +1할 때는 어떤 상황 차이?
  • 하고 싶은 말
    • 이분 탐색… 어렵다…ㅠㅅ ㅠ…
  • 노션 링크 - 다른 코드 및 틀린 코드 확인
(Hint) 두 용액 - 23/10/20 3.5뽀 - 28672KB 400ms
  • 공개한 1등 기록: 15932KB 184ms
  • 문제 핵심
    • 투 포인터, 두 수의 합이 음수인지 양수인지에 따라 leftPtr, rightPtr의 이동 결정하기
    • 0에 가까운 수를 출력하는 거라 Math.abs 이용
  • 어려웠던 부분 해결
    • 이분 탐색으로 mid 이용했지만 틀렸습니다!
      • 원래 푼 방식인 한 번 이분 탐색 도는 걸로는 최소를 장담할 수 없음.
      • 힌트 확인 후 음수, 양수인지 비교해 투 포인터로 풂.
  • 순위 코드 분석 후 배운 점
    • 출력시 printf 사용!
    • 2_000_000_000 - 숫자 리터럴, 정수 상수 표현.
    • while (s != e), Math.abs(sN) >= Math.abs(eN), 조건문 비교 참고.
    • sum==0일 때 break 추가.
  • 보충이 필요한 지식
    • left, right 포인터의 조건 설정!
    • 결국 루프를 하나 다 돌면서 이분 탐색이라 상위권은 투포인터로 푼 건지? 시간 복잡도는 N*logN ?
  • ~칭찬~
    • 힌트를 조금만 보고 풀어보려 노력했지만, 이분 탐색이라는 굴레에 갇혀버려서... 투포인터는 전혀 떠올리지 못했다... 카테고리에 집착하지 말고 풀 수 있는 대로 ... 생각하자!
    • 솔직히 오늘 좀 풀기 싫었고, 힌트도 봤지만, 얽매이지 말자는 걸 배웠다!