문제 : 10819번 💪🏻 해결 방법 1️⃣ 순열로 풀기 N의 제한이 8이기 때문에 순열로 풀어도 될 것 같다고 판단하였다. N개의 정수를 오름차순으로 정렬해서 차이를 구하면 최소값을 구할 수 있지만 최대값을 구하려면 전체의 경우의 수를 구해야 한다. 주어진 배열 원소들의 모든 순열을 구한다. 모든 순열의 경우마다 차이의 합을 계산하고, 최댓값을 갱신해준다. 🏂 Python itertools 라이브러리 # 순열 함수 import itertools itertools.permutations(데이터가 들은 배열 리스트, 나열할 원소 갯수) # 조합 함수 import itertools itertools.combinations(데이터가 들은 배열 리스트, 나열할 원소 갯수) 정답 코드 import sys, ite..
📚 완전 탐색(Brute Force) 이란? : 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 -> 컴퓨터의 빠른 계산 속도를 잘 이용하는 방법 : 완전 탐색 자체로는 알고리즘이라고 부르긴 그렇고, 문제 푸는'방법'이라고 이해하면 편할 것 같다. : 이 방식은 절대 답을 못 구하는 경우는 없으므로 나름 강력한 방법! 예를 들어 4자리의 암호로 구성된 자물쇠를 풀려고 시도한다고 생각해보자. 이 자물쇠의 암호를 해결하기 위해 0000 ~ 9999까지 모두 시도해보는 것이다.(최대 10,000번의 시도로 해결 가능) 🧩 완전 탐색 방법 완전 탐색 자체가 알고리즘은 아니기 때문에 완전 탐색 방법을 이용하기 위해서 여러 알고리즘 기법이 이용된다. 주로 이용되는 기법들은 다음과 같다. 기본적으로 완전 탐색은 ..
https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A..
* 탐색 전 꼭꼭 int[] arr 정렬하기 !! > BinarySearch public static int(int[] arr, key){ int start = 0; int end = arr.size(); while(start lowerBound 이상의 값 찾기! public static int lowerBound(int[] arr, key){ int start = 0; int end =..
문제 > https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 관련 내용 > 2022.01.19 - [뚝딱뚝딱/Java] - [Java] Arrays.sort() 재정의하기 / Comparator 재정의 / 정렬 조건 바꾸기 작성한 코드 > import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Ar..