정수 배열 arr와 2차원 정수 배열 queries이 주어집니다. queries의 원소는 각각 하나의 query를 나타내며, [s, e, k] 꼴입니다. 각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 i가 k의 배수이면 arr[i]에 1을 더합니다. 위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer =new int[arr.length];
for(int i=0; i<arr.length; i++){
answer[i]=arr[i];
}
for(int i=0; i<queries.length;i++){
for(int j=queries[i][0]; j<queries[i][1]-queries[i][0]+1;j++){
if(j==0 || j%queries[i][2]==0){
answer[j]++;
}
}
}
return answer;
}
}
문제 이해하는데 꽤 애를 먹었다.
풀이는 간단하게 이중 for 문을 써서 쿼리의 배열에 기준만큼 반복하게 하고 배열 인덱스 번호가 배수인지 판가름 해서
그때마다 더해주면 된다. 0은 모든 수의 배수라서 or 에 더해주면된다.
'자바 알고리즘 문제' 카테고리의 다른 글
| 7의 개수 (0) | 2024.02.09 |
|---|---|
| 문자열 묶기 (0) | 2023.12.29 |
| 2의 영역 (0) | 2023.12.21 |
| 문자열 반복해서 출력하기 (0) | 2023.12.21 |
| 간단한 논리 연산 (1) | 2023.12.20 |