삼각수 구하기
// 재귀함수
public static int recursive(int n){
if(n==1) return 1;
return n + recursive(n-1);
}
// 삼각수를 저장할 배열
ArrayList<Integer> triangleList = new ArrayList<>();
for(int i =1; i <= 4; i++){
triangleList.add(recursive(i)); // 재귀함수 호출
}
int tri = 0;
for(int i = 1; tri <= 10; i++){ // for문으로 추출
triangleList.add(tri);
tri += i;
}
배열 뒤집기
class Solution {
public int[] solution(int[] num_list) {
int[] answer = new int[num_list.length];
for(int i = num_list.length - 1, j = 0; i >= 0; i--, j++){
answer[j] = num_list[i];
}
return answer;
}
}
문자열 뒤집기
class Solution {
public String solution(String my_string) {
String answer = "";
StringBuffer sb = new StringBuffer(my_string);
answer = sb.reverse().toString();
return answer;
}
}
배열 자르기
import java.util.*;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2-num1];
answer = Arrays.copyOfRange(numbers, num1, num2 + 1);
return answer;
}
}
정수 배열 정렬(오름차순, 내림차순)
기본타입 배열을 이용할 경우
int[] numbers = new int[] {0, 31, 24, 10, 1, 9};
// sort
Arrays.sort(numbers);
// reverse sort
numbers = Arrays.stream(numbers)
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(Integer::intValue)
.toArray();
ArrayList를 이용할 경우
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class SortArrayList {
public static void main(String[] args) {
// ArrayList 준비
ArrayList<String> list = new ArrayList<>(Arrays.asList("C", "A", "B", "a"));
System.out.println("원본 : " + list); // [C, A, B, a]
// 오름차순으로 정렬
list.sort(Comparator.naturalOrder());
System.out.println("오름차순 : " + list); // [A, B, C, a]
// 내림차순으로 정렬
list.sort(Comparator.reverseOrder());
System.out.println("내림차순 : " + list); // [a, C, B, A]
// 대소문자 구분없이 오름차순 정렬
list.sort(String.CASE_INSENSITIVE_ORDER);
System.out.println("대소문자 구분없이 오름차순 : " + list); // [a, A, B, C]
// 대소문자 구분없이 내림차순 정렬
list.sort(Collections.reverseOrder(String.CASE_INSENSITIVE_ORDER));
System.out.println("대소문자 구분없이 내림차순 : " + list); // [C, B, a, A]
}
}
최대공약수와 최소공배수
두 자연수의 곱 = 최대공약수 x 최소공배수
최대공약수 >> 두 수의 공통되는 약수 중 가장 큰 수
최소공배수 >> 두 수의 공통되는 배수 중 가장 작은 수
// 최대공약수
public static int getGCD(int num1, int num2){
if(num2 == 0){
return num1;
} else {
return getGCD(b, a%b);
}
}
// 최소공배수
public static int getLCD(int num1, int num2){
return num1 * num2 / getGCD(num1, num2);
}
'회고록(TIL&WIL)' 카테고리의 다른 글
WIL 2022.12.12 ~ 2022.12.16 java 공부 (1) | 2022.12.20 |
---|---|
WIL 2022.12.06 ~ 2022.12.08 java 공부 (0) | 2022.12.20 |
TIL 2022.11.30 simpleJWT 커스텀 및 spring에서 decode (0) | 2022.12.05 |
TIL 2022.11.21 Spring webflux(webclinet), spring cron 간단 예제 (0) | 2022.11.22 |
TIL 2022.11.14 Spring boot (gradle) dot.env dockerfile-docker-compose (0) | 2022.11.15 |