Map 정렬하기(Integer values 내림차순)
https://school.programmers.co.kr/learn/courses/30/lessons/138476

List<Integer> arr = new ArrayList<>(map.values());
Collections.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});
문자열 길이순 오름차순 정렬
https://school.programmers.co.kr/learn/courses/30/lessons/64065

// 문자열 길이순 정렬
Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
});
숫자 형태의 문자열 내림차순 정렬
https://school.programmers.co.kr/learn/courses/30/lessons/42746

Arrays.sort(arr, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return (o2+o1).compareTo(o1+o2);
}
});
유클리드 호제법(최대공약수, 최소공배수)
GCD(최대 공약수)
-2개의 자연수의 최대공약수(GCD)를 구하는 알고리즘
-2개의 자연수 a, b(a>b)에서 a를 b로 나눈 나머지를 r이라고 할 때,
GCD(a,b) = GCD(b,r)이며, r=0이면 그때 b가 최대 공약수이다.
public int gcd(int a, int b) { //최대공약수
while(b!=0) {
int r=a%b;
a=b;
b=r;
}
return a;
}
LCM(최소공배수)
두 자연수 A,B의 최대공약수가 G, 최소공배수가 L일 때,
A=a*G, B=b*G(a,b는 서로소)라고 하면,
L=a*b*G
L=A*B/G
public int lcm(int a, int b) { //최소공배수
//L=A*B/G
//0이 아닌 두 수의 곱 / 두 수의 최대 공약수
return a*b / gcd(a,b);
}
'코딩테스트' 카테고리의 다른 글
[프로그래머스-level 2(정렬) 자바/java] 가장 큰 수 _디버깅의 눈물 (0) | 2023.01.05 |
---|---|
[백준-10162번 자바/java] 전자레인지 _디버깅의 눈물 (0) | 2022.10.25 |
[인프런 자바/java] 3. 결혼식 _디버깅의 눈물 (0) | 2022.10.25 |
[인프런 자바/java] 2. 회의실 배정 _디버깅의 눈물 (0) | 2022.10.24 |
[인프런 자바/java] 1. 씨름 선수 _디버깅의 눈물 (0) | 2022.10.24 |