일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- til
- Generics
- SpringBoot
- 이분 탐색
- 알고리즘
- web
- 프로젝트
- 누적합
- Elasticsearch
- parametric search
- 구현
- programmers
- OOP
- 백준
- Algorithm
- 내일배움캠프
- 코딩테스트
- Baekjoon
- 이분탐색
- 객체지향
- ES
- Spring
- binary search
- BFS
- 계산기 만들기
- 완전탐색
- CSS
- 프로그래머스
- Java
- 브루트포스
- Today
- Total
목록이분탐색 (3)
개발하는 햄팡이

https://www.acmicpc.net/problem/2470 풀이 과정주어진 용액을 두개를 더해 0과 가까운 용액을 만드는 것이 목표. 이 문제의 알고리즘 분류에 이분탐색이 있는데사실 이분탐색을 사용하지 않고 투 포인터만 사용하면 쉽게 풀린다. 투 포인터로 푸는 방법은일단 입력값을 배열에 받아 정렬을 하고투 포인터를 이용해서 양 끝에서부터 용액을 선택한다음0보다 크면 right값을 줄이고,0보다 작으면 left값을 줄이면 된다.시간 초과도 되지 않는다.예전에 투 포인터로 풀었던 문제이지만 이분탐색도 곁들여서 풀면 좀 더 효율적으로 풀 수 있고지금 계속 이분탐색을 연습중이라서 이분탐색을 넣은 방법으로 다시 해볼려고 한다.이분탐색으로 푸는게 훨씬 어려운 방법인 것 같다...현재로써는 그냥 배열을 0부터..

https://www.acmicpc.net/problem/2295풀이 과정이분탐색을 연습하느라 해당 문제는 이분탐색으로 푸는 것을 알고선 시작..!문제를 읽어보면 집합안에 있는 숫자를 이용해서 집합 안에있는 또 다른 숫자를 만드는데그 중 제일 큰 값을 구하는 문제이다.그리고 중복도 된다. A+B+C=X가 되는 값을 구하면 되는데무작정 for문으로 돌면 답은 나오지만 문제 조건이 N이 1000개까지 나올 수 있어서연산량은 1000^3 = 1000,000,000 정도가 나오기 때문에 시간제한에 걸린다.그래서 다른 방법을 사용해야하는데A+B = X - C를 이용하는 방법이다. 일단 2중 for문을 돌면서 A+B로 나올 수 있는 모든 수를 Set에 저장한 후또 2중for문을 돌아서 X-C를 구한 다음 Set에 ..

https://www.acmicpc.net/problem/2805 풀이 과정일단 문제를 읽어보면 절단기 높이 H를 지정해서 그 단위로 목재를 자르고 떨어져나간 목재를 가져가는 방식이다.그 목재가 M미터가 되도록 최소한 환경을 생각해서 잘라간다는 내용인데...1. 일단 입력값 중 최대값을 찾아2. 그 값을 기준으로 점점 줄이든 늘리든 H를 설정하고3. 잘려나간 나무의 길이가 M이상인지 보는 문제 같다 H를 설정하는게 이 문제의 관건 같은데 나무의 최대 높이가 20억이기 때문에 길이를 하나씩 줄여가면서 보는건 좀 무리인 것 같다.최대 N* M 정도 될 것 같은데 그 값이 만만치가 않다.(근데 그냥 최대 높이가 20이라고 해도 20부터 1까지 1씩 줄여가면서 보는건 좀....노가다스럽긴 하다.. 이런 코드 ..