Coding (195) 썸네일형 리스트형 1629번 곱셈 분할 정복으로 풀면 된다 분할정복(Divide And Conquer) Divide And Conquer - 분할 정복 알고리즘은 문제를 나눌 수 없을 때까지 나누고 풀면서 다시 합쳐 답을 구하는 알고리즘이다. 문제가 분할가능한 경우 -> 문제를 나눈다 -> 나눌 수 없을 때까지 나눈다 -> 답이 나올 때까지 문제를 풀고 합치고 반복한다 즉, Divide -> Conquer -> Combine (분할 정복 알고리즘은 재귀 알고리즘에서 많이 사용) 1. 병합 정렬 2. 거듭 제곱 3. 피보나치 수열 구글맵 오른쪽 하단 아이콘 제거 .getUiSettings().setMapToolbarEnalbed(false); allowBackup allowBackup = true 백업이 가능 allowBackup = false 백업이 불가능 개발을 완료 후 백업 속성이 활성화되어 있는 상태로 앱을 배포하면 백업 취약점을 이용해 제3자가 사용자의 중요 정보, 인증 정보 등을 갖을 수 있게 된다. match_parent, wrap_content match_parent - 해당 레이아웃의 길이만큼 다 채운다. wrap_content - 필요한 길이만 사용하여 그 만큼의 길이만 레이아웃을 채운다. 삼항 연산자 삼항 연산자(ternary operator) 조건식 ? 반환값1 : 반환값2 조건에 따라 참이면 왼쪽값 거짓이면 오른쪽값을 반환한다. 예를 들어 유클리드 호제법에서 설명할때 쓴 코드를 살펴보면 이렇게 작성되어 있다. N ? Euclidean(N,M%N) : M; N이 참일 경우 Euclidean(N,M%N) 값을, 거짓일 경우 M값을 반환한다. N이 1이상의 수이면 참이기 때문에 N이 0이 될때까지 Euclidean(N,M%N)을 반복수행한다. 유클리드 호제법 유클리드 호제법이란 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘 중 하나이다. 호제법이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘을 의미한다. 1071와 1029의 최대 공약수를 구해보자. 1071 = 1029*1 + 42 1029 = 42*24 + 21 42 = 21*2 + 0 따라서 최대공약수는 21이다. a,b는 Z에 속해있고 a를 b로 나눈 나머지가 r이라고 하자(여기서 a>=b이고 r은 0 2156번 포도주 시식 포도주가 N개 있다고 가정할 때 나올 수 있는 경우의 수를 구해보자 맨 마지막 N개를 포함하는 두 가지 경우와 마지막 N을 포함하지 않는 한 가지 경우 총 3가지로 나누어진다. 1. N번째와 N-1번째를 고르고 N-3번째까지의 최댓값을 고르는 경우 2.N번째를 고르고 N-2번째까지의 최댓값을 고르는 경우 3. N-1번째까지의 최댓값을 구하는 경우 이를 점화식으로 나타내면(와인을 저장한 wine배열, 총 최댓값을 저장한 dp배열) 1. wine[N]+wine[N-1]+dp[N-3] 2.wine[N]+dp[N-2] 3.dp[N-1] 그리고 셋 중 제일 큰 값을 고르면 된다. 이전 1 ··· 17 18 19 20 21 22 23 ··· 25 다음