📌Back-End/프로그래머스
Java 프로그래머스 코딩 기초 트레이닝 Day 20 함수(메서드)
구 일
2024. 6. 16. 17:29
728x90
반응형
배열의 길이를 2의 거듭제곱으로 만들기
/**
* 코딩 기초 트레이닝 Day 20
* 배열의 길이를 2의 거듭제곱으로 만들기
*/
public class Main1 {
public static void main(String[] args) {
int[] result = solution(new int[]{1, 2, 3, 4, 5, 6});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{58, 172, 746, 89});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] arr) {
int n = 0;
while (arr.length > (int) Math.pow(2, n)) {
n++;
}
int[] answer = new int[(int) Math.pow(2, n)];
for (int i = 0; i < answer.length; i++) {
if (i < arr.length) {
answer[i] = arr[i];
} else {
answer[i] = 0;
}
}
return answer;
}
}
배열 비교하기
import java.util.Arrays;
/**
* 코딩 기초 트레이닝 Day 20
* 배열 비교하기
*/
public class Main2 {
public static void main(String[] args) {
System.out.println(solution(new int[]{49, 13}, new int[]{70, 11, 2}));
System.out.println(solution(new int[]{100, 17, 84, 1}, new int[]{55, 12, 65, 36}));
System.out.println(solution(new int[]{1, 2, 3, 4, 5}, new int[]{3, 3, 3, 3, 3}));
}
public static int solution(int[] arr1, int[] arr2) {
if (arr1.length != arr2.length) {
if (arr1.length > arr2.length) {
return 1;
} else {
return -1;
}
} else {
int arr1Sum = Arrays.stream(arr1).sum();
int arr2Sum = Arrays.stream(arr2).sum();
if (arr1Sum > arr2Sum) {
return 1;
} else if (arr1Sum < arr2Sum) {
return -1;
} else {
return 0;
}
}
}
}
문자열 묶기
import java.util.Hashtable;
/**
* 코딩 기초 트레이닝 Day 20
* 문자열 묶기
*/
public class Main3 {
public static void main(String[] args) {
System.out.println(solution(new String[]{"a", "bc", "d", "efg", "hi"}));
}
public static int solution(String[] strArr) {
Hashtable<Integer, Integer> ht = new Hashtable<>();
int maxCnt = 0;
for (int i = 0; i < strArr.length; i++) {
int len = strArr[i].length();
if (!ht.containsKey(len)) {
ht.put(len, 1);
} else {
ht.replace(len, ht.get(len) + 1);
}
}
for (int value : ht.values()) {
maxCnt = Math.max(maxCnt, value);
}
return maxCnt;
}
}
배열의 길이에 따라 다른 연산하기
/**
* 코딩 기초 트레이닝 Day 20
* 배열의 길이에 따라 다른 연산하기
*/
public class Main4 {
public static void main(String[] args) {
int[] result = solution(new int[]{49, 12, 100, 276, 33}, 27);
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
result = solution(new int[]{444, 555, 666, 777}, 100);
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] arr, int n) {
int[] answer = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
if (arr.length % 2 != 0) {
answer[i] = i % 2 == 0 ? arr[i] + n : arr[i];
} else {
answer[i] = i % 2 != 0 ? arr[i] + n : arr[i];
}
}
return answer;
}
}
뒤에서 5등까지
import java.util.Arrays;
/**
* 코딩 기초 트레이닝 Day 20
* 뒤에서 5등까지
*/
public class Main5 {
public static void main(String[] args) {
int[] result = solution(new int[]{12, 4, 15, 46, 38, 1, 14});
for (int num : result) {
System.out.print(num + " ");
}
System.out.println();
}
public static int[] solution(int[] num_list) {
Arrays.sort(num_list);
int[] result = Arrays.copyOf(num_list, 5);
return result;
}
}
728x90
반응형