프로그래머스 (배열의 길이를 2의 거듭제곱으로 만들기)
import java.util.Arrays;
public class problem423 {
class Solution {
public int[] solution(int[] arr) {
int newLength = 1;
while (newLength < arr.length) {
newLength *= 2; // 2의 제곱으로 할당
}
// Arrays.copyOf(원본 배열, 복사하고싶은 길이);
int[] answer = Arrays.copyOf(arr, newLength);
return answer;
}
}
}
public class problem424 {
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = new int[queries.length];
for (int i = 0; i < queries.length; i++) {
int start = queries[i][0]; // start 인덱스
int end = queries[i][1]; // end 인덱스
int compare = queries[i][2];
int min = -1; // 값이 없을 경우 -1 할당
for (int j = start; j <= end; j++) {
if (arr[j] > compare) {
// 최소값이 arr배열에 있는 값보다 클경우 다시할당
if (min == -1 || arr[j] < min) {
min = arr[j];
}
}
}
answer[i] = min;
}
return answer;
}
}
}
import java.math.BigInteger;
public class problem425 {
class Solution {
public String solution(String a, String b) {
// 2번째 예시가 int 타입, long 타입의 범위를 다 벗어난다.
// 두 문자열을 BigInteger로 변환
BigInteger numA = new BigInteger(a);
BigInteger numB = new BigInteger(b);
BigInteger sum = numA.add(numB);
// 결과를 문자열로 변환하여 반환
return sum.toString();
}
}
}
public class problem426 {
class Solution {
public String[] solution(String[] str_list) {
int start = 0; // 시작 인덱스
int end = 0; // 끝 인덱스
for (int i = 0; i < str_list.length; i++) {
String str = str_list[i];
// 문자열에서 "l"을 만날경우
if (str.equals("l")) {
start = 0;
end = i;
break;
}
// 문자열에서 "r"을 만날경우
if (str.equals("r")) {
start = i + 1;
end = str_list.length;
break;
}
}
// 배열 크기 할당
String[] answer = new String[end - start];
for (int i = start; i < end; i++) {
// 인덱스를 맞추기 위해 answer[i-start]
answer[i - start] = str_list[i];
}
return answer;
}
}
}