
1) 오름차순이고2) 시간 복잡도는 LogN이므로 \-> 이진탐색이다. 힌트를 참고함. : 타겟 발견시 처음 인덱스와 마지막 인덱스를 찾고,계산해서 리턴하면 된다고 한다. : lower_bound 와 upper_bound 를 사용했다. \-> 공부하고 다시 풀자.
탐색하는데 시간복잡도를 log(n)을 요구하므로 이진탐색을 생각할 수 있다. 1) 노트에 필기하면서 규칙성을 찾아보면, mid값 == vmid 일 경우에 mid를 출력한다.2) mid값과 vmid 의 값을 비교하면서 규칙성을 찾을 수 있다. value < inde
1) 처음에는 세로 중에서 가장 큰 친구 뽑아서 오른쪽, 오른쪽 위, 오른쪽 아래로 진행하면서 (+ 예외 처리) 가장 큰값을 추출하려고 했지만, 가장 낮은 값 쪽에 엄청 큰 수 추가하는 방법으로 이러한 방법이 아닌것을 도출했다. 2) 역으로 생각하자. 어쨋든 가장 큰
1) 처음에는 연산의 횟수를 줄여야 하므로 조건을 if / else if로 끊어서 생각했다. 그러니까 a.5로 나눌 수 있다면 5로 나누고, for문 순환 증가하고, 나머지 연산 b,c,d 조건문 끝냄. 하지만 이렇게 작성하면 예로 보여준 26은 성립 안된다. 위에서
1) 경우의 수 모두 다 따져가면서 진행하려고 했다. 하지만 n의 크기는 최대 100이므로, 경우의 수가 엄청 많아지므로, 접근법이 잘못됨. 다르게 생각해보자. 2) 일단 인덱스 하나하나 마다 값이 어떻게 결정되는지 생각을 해보앗따. 10 , 31 , 12 , 53 이
: 그림을 그려가면서 규칙성을 찾자.
소스코드

끄적 끄적 소스코드
ㅇㅇㅇ
문제에서 그룹지을 수 있는 최대 수를 구하는 문제다.굳이 사람을 안 데려가도 된다고 한다. \-> 이를 통해 작은 숫자를 오름차순으로 나열하면 많은 그룹수를 낼수 있다고 생각을 했다. 임시 변수 설정하는 부분은 고심하면 짤 수 있다.
문자열 하나하나씩 확인하면서 곱할지 더할지 결정하는 것이 효율적이다.0일때는 더하고, 0이 아니면 곱하는 방식으로 진행한다. 초기값을 1로 할지 0으로 할지 고심하자.
문제를 보고 추가적으로 예시를 넣어보았다. 1100110010001 이라면 몇번 뒤집었을때 최소 뒤집는 횟수가 나올까? 라는 생각을 햇다...1을 뒤집게 되면 총 4번이고,0을 뒤집게 되면 총 3번이다.그렇다면?!! 0을 뒤집었을때 3번만 뒤집으면 되므로 0을 3번 뒤

소스코드
번호는 순차적으로 구성하고, 한사람당 한개씩 고를 수 있다.A,B 두사람이 고른다. 무게가 다른 경우의 수한개 번호를 고정으로 하고, 나머지 번호와의 무게를 비교하는 방식으로 접근하면 된다.
: 구성요소가 많은데, 그 구성요소들을 이용해 어떤한 조건에 만족하는 값을 구할때 사용된다. 예를 들어서 2원과 3원을 이용해서 10원을 만드려고 할때의 최소 갯수는?직감적으로 2원 2개와 3월 2개를 이용하면 10원을 만들수 있다. 이 때는 4개를 사용했다. 하지만
0인 부분을 어쨋든 모두다 탐색을 해야 하므로 , dfs로 접근하자. dfs가 한번 호출된다면, 해당 dfs 함수에서 0인 부분을 확인해서 재귀형태로 dfs를 호출하는 방식으로 dfs가 종료되는 부분은 상하좌우 칸씩을 확인하면서, 조건에 만족하지 않을 때 함수를 뛰쳐나
: 뒤로 가는거는 안함.
: 재귀로
핵심.가장 큰 단위에서 작은 단위로 나눌 경우를 생각했을 때 문제가 없음.but 800원인데 500, 400 , 100 일 경우 문제다. \-> 가장 큰 단위의 수가 작은 단위의 값들의 단위이기 때문에 가능한 문제임.현재 500, 100, 50, 10 이므로 단위로 처
: result값 구할때 for문 돌리려고 했는데, 생각을 바꿈. 몫과 나머지로 접근함.
: max 함수를 사용하려고 했는데, 오류 나와서 sort 후 0번 인덱스로 처리함.
코드
코드