
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
int length = arr.length;
boolean isPowerOfTwo = (length > 0) && ((length & (length - 1)) == 0);
while (!isPowerOfTwo) {
arr = Arrays.copyOf(arr, length + 1);
arr[length] = 0;
length = arr.length;
isPowerOfTwo = (length & (length - 1)) == 0;
}
return arr;
}
}
매개변수 배열의 길이가 2의 거듭제곱이 될 때까지 0을 추가하는 문제

class Solution {
public int solution(int[] arr1, int[] arr2) {
int sum1 = 0; // arr1의 원소들의 합을 저장할 변수
int sum2 = 0; // arr2의 원소들의 합을 저장할 변수
// arr1의 원소들의 합 계산
for (int num : arr1) {
sum1 += num;
}
// arr2의 원소들의 합 계산
for (int num : arr2) {
sum2 += num;
}
// 대소관계 비교
if (arr1.length > arr2.length || (arr1.length == arr2.length && sum1 > sum2)) {
return 1;
} else if (arr1.length < arr2.length || (arr1.length == arr2.length && sum1 < sum2)) {
return -1;
} else {
return 0;
}
}
}
조건
매개 변수 2개의 배열이 주어졌을 때,
2개의 배열이 길이가 다른 경우, 길이를 비교

import java.util.*;
class Solution {
public int solution(String[] strArr) {
Map<Integer, Integer> groupCounts = new HashMap<>(); // 각 그룹의 개수를 저장할 맵
// 문자열 배열의 원소들을 그룹으로 묶고, 그룹별 개수를 계산
for (String str : strArr) {
int length = str.length();
groupCounts.put(length, groupCounts.getOrDefault(length, 0) + 1);
}
int maxCount = 0; // 가장 개수가 많은 그룹의 크기
// 가장 개수가 많은 그룹의 크기 찾기
for (int count : groupCounts.values()) {
if (count > maxCount) {
maxCount = count;
}
}
return maxCount;
}
}
문자열 배열 strArr의 원소들을 길이별로 그룹화하고 가장 많은 문자열을 포함한 그룹의 크기를 구하는 문제

class Solution {
public 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) { // 배열의 길이가 홀수인 경우
if (i % 2 == 0) { // 짝수 인덱스에 n 더하기
answer[i] = arr[i] + n;
} else {
answer[i] = arr[i];
}
} else { // 배열의 길이가 짝수인 경우
if (i % 2 != 0) { // 홀수 인덱스에 n 더하기
answer[i] = arr[i] + n;
} else {
answer[i] = arr[i];
}
}
}
return answer;
}
}
조건
arr의 길이가 홀수인 경우
arr의 길이가 짝수인 경우

import java.util.*;
class Solution {
public int[] solution(int[] num_list) {
ArrayList<Integer> list = new ArrayList<>();
Arrays.sort(num_list);
// num_list의 인덱스번호 0~4까지 list에 추가
for (int i = 0; i <= 4; i++) {
list.add(num_list[i]);
}
// list에 담긴 값 배열에 담고 리턴
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}