class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = new int[queries.length];
for(int i=0;i<quires.length;i++) {
int s = queries[i][0];
int s = queries[i][1];
int k = queries[i][2];
if(s<= i <= e) {
answer[i] = quires[i];
if(i % k ==0) {
answer[i] = +1;
}
}
}
return answer;
}
}
제출한 정답
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = Arrays.copyOf(arr, arr.length);
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(k != 0 && j % k == 0) {
answer[j] += 1;
}
}
}
return answer;
}
}
풀이
처음에 배열을 복사하지 않아도 arr 조작후 리턴해도 제대로 작동함
제출한 정답
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int l, int r) {
List<Integer> list = new ArrayList<>();
for (int i = l; i <= r; i++) {
if (isValid(i)) {
list.add(i);
}
}
if (list.isEmpty()) {
return new int[] { -1 };
}
return list.stream().mapToInt(i -> i).toArray();
}
private boolean isValid(int num) {
String s = String.valueOf(num);
for (char c : s.toCharArray()) {
if (c != '0' && c != '5') {
return false;
}
}
return true;
}
}
풀이
i부터 r까지 순회하고 조건에 맞으면 배열에 더하도록 for문 작성하고 배열에 아무것도 없으면 -1 반환하는 if 문 작성해서 문제 해결
0과 5로만 이루어진거 확인하려면 String.valueOf(num) 으로 숫자를 문자열로 변환 후 for(char c : s.toCharArray())으로 전체 문자열 확인하는 반복문 작성, c가 0과 5가 아니면 false 반환
class Solution {
public int[] solution(int start_num, int end_num) {
int[] answer = {};
for(int i = start_num;i<=end_num;i++) {
answer = i;
}
return answer;
}
}
풀이
우선 end_num - start_num + 1 배열의 크기로 배열 만들고 answer[i - start_num] = i;으로 배열에 값을 채워야됨