
i가 k의 배수이면 arr[i]에 1을 더한다.
여기서 i는 queries의 index가 아닌 반복해서 돌아가는 i의 수일 뿐이다.
(querise[0][1] (4) 이라면 i는 그냥 숫자 0 부터 4를 의미함.
querise[0][3] (3) 이라면 i는 그냥 숫자 0부터 3을 의미함.)
Solution 1) 내 풀이
class Solution {
public int[] solution(int[] arr, int[][] queries) {
for (int i = 0; i < queries.length; i++) {
for (j = 0; j <= queries[i][1]; j++) {
if (j % queries[i][2] == 0) {
arr[j]++;
}
}
}
return arr;
}
}
(이중 for문의 안쪽 반복문 초기치(j의 초기치)를 습관적으로 0으로 잡고 시작해서 다 틀렸다..)
Solution 2) 다른 사람의 풀이
class Solution {
public int[] solution(int[] arr, int[][] queries) {
for (int i = 0; i < queries.length; i++) {
for (int j = queries[i][0]; j <= queries[i][1]; j++) {
if (j % queries[i][2] == 0) {
arr[j]++;
}
}
}
return arr;
}
}
arr 배열의 시작이 무조건 0부터가 아닌데 습관적으로 시작을 0으로 잡아 헷갈렸다.
(j = 0; 에서 j = querise[i][0];으로 수정 된 모습)
초기치 설정에도 좀 더 신경을 쓰자
'연습문제 > 프로그래머스, 기초 트레이닝' 카테고리의 다른 글
| 카운트 업(Stream 활용하기) (1) | 2023.10.23 |
|---|---|
| 배열 만들기2 (1) | 2023.10.23 |
| 수 조작하기2 (switch 문 사용하기) (0) | 2023.10.22 |
| 수 조작하기1 ( switch문) (0) | 2023.10.22 |
| 마지막 두 원소 (Arrays.copyOf) (0) | 2023.10.22 |