문제 - 수열과 구간 쿼리 4

풀이
class Solution {
public int[] solution(int[] arr, int[][] queries) {
for (int i=0; i<queries.length; i++) {
int s = queries[i][0];
int e = queries[i][1];
int k = queries[i][2];
for(int j = s; j <= e; j++) {
if(j % k == 0){
arr[j] += 1;
}
}
}
return arr;
}
}
문제 - 배열 만들기 2

풀이
import java.util.*;
class Solution {
public int[] solution(int l, int r) {
ArrayList<Integer> arraylist = new ArrayList<>();
for (int i = l; i <= r; i++) {
if (String.valueOf(i).matches("[05]+")) {
arraylist.add(i);
}
}
if (arraylist.isEmpty()) {
return new int[]{-1};
}
int[] a = new int[arraylist.size()];
for (int j = 0; j < arraylist.size(); j++) {
a[j] = arraylist.get(j);
}
return a;
}
}
문제 - 카운트 업

풀이
import java.util.*;
class Solution {
public int[] solution(int start_num, int end_num) {
int[] answer = new int[end_num - start_num + 1];
for (int i = 0; i <= end_num - start_num; i++) {
answer[i] = start_num + i;
}
return answer;
}
}
문제 - 콜라츠 수열 만들기

풀이
import java.util.*;
class Solution {
public int[] solution(int n) {
List<Integer> list = new ArrayList<>();
list.add(n);
while (n != 1) {
if (n % 2 == 0) {
n = n / 2;
} else {
n = 3 * n + 1;
}
list.add(n);
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
문제 - 배열 만들기 4

풀이
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
List<Integer> stk = new ArrayList<>();
int i = 0;
while (i < arr.length) {
if (stk.isEmpty()) {
stk.add(arr[i]);
i += 1;
} else if (stk.get(stk.size() - 1) < arr[i]) {
stk.add(arr[i]);
i += 1;
} else if (stk.get(stk.size() - 1) >= arr[i]) {
stk.remove(stk.size() - 1);
}
}
int[] result = new int[stk.size()];
for (int j = 0; j < stk.size(); j++) {
result[j] = stk.get(j);
}
return result;
}
}