Folders and files Name Name Last commit message
Last commit date
parent directory
View all files
문제 이름 - 날짜 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 ?
~칭찬~
힌트를 조금만 보고 풀어보려 노력했지만, 이분 탐색이라는 굴레에 갇혀버려서... 투포인터는 전혀 떠올리지 못했다... 카테고리에 집착하지 말고 풀 수 있는 대로 ... 생각하자!
솔직히 오늘 좀 풀기 싫었고, 힌트도 봤지만, 얽매이지 말자는 걸 배웠다!
You can’t perform that action at this time.