[ Programmers ] 수열과 구간 쿼리 1 ( java ) 70 / 124
📚 Table of Contents
문제 설명
정수 배열 arr
와 2차원 정수 배열 queries
이 주어집니다. queries
의 원소는 각각 하나의 query
를 나타내며, [s, e]
꼴입니다.
각 query
마다 순서대로 s
≤ i
≤ e
인 모든 i
에 대해 arr[i]
에 1을 더합니다.
위 규칙에 따라 queries
를 처리한 이후의 arr
를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤
arr
의 길이 ≤ 1,000- 0 ≤
arr
의 원소 ≤ 1,000,000
- 0 ≤
- 1 ≤
queries
의 길이 ≤ 1,000- 0 ≤
s
≤e
<arr
의 길이
- 0 ≤
입출력 예
arr | queries | result |
---|---|---|
[0, 1, 2, 3, 4] | [[0, 1],[1, 2],[2, 3]] | [1, 3, 4, 4, 4] |
입출력 예 설명
입출력 예 #1
- 각 쿼리에 따라
arr
가 다음과 같이 변합니다.
i | queries[i] | arr |
---|---|---|
- | - | [0, 1, 2, 3, 4] |
0 | [0,1] | [1, 2, 2, 3, 4] |
1 | [1,2] | [1, 3, 3, 3, 4] |
2 | [2,3] | [1, 3, 4, 4, 4] |
- 따라서 [1, 3, 4, 4, 4]를 return 합니다.
문제 풀이
코드 설명
코드의 목적:
이 코드는 주어진 정수 배열(arr)의 특정 구간에 대해 증가 연산을 수행하는 기능을 가진 알고리즘입니다. 연산을 수행할 구간의 시작과 끝 인덱스는 2차원 배열(queries)의 각 원소로 제공됩니다.
코드의 주요 구조:
- 이중 for문: 첫 번째 for문은 연산을 수행할 구간의 수만큼 반복하고, 두 번째 for문은 각 구간 내의 원소에 대해 반복합니다.
- 증가 연산: 각 구간 내의 원소를 1씩 증가시킵니다.
- 반환: 연산이 완료된 배열을 반환합니다.
코드의 주요 알고리즘:
- 연산을 수행할 구간의 수만큼 반복합니다.
- 각 구간 내의 원소를 1씩 증가시킵니다.
- 연산이 완료된 배열을 반환합니다.
코드의 핵심:
- 이중 for문을 이용하여 연산을 수행할 구간과 그 구간 내의 원소를 순회합니다.
- 증가 연산을 수행합니다.
- 연산이 완료된 배열을 반환합니다.
풀이
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++) {
// 각 원소를 1씩 증가시킴
arr[j] += 1;
}
}
// 연산이 완료된 배열을 반환
return arr;
}
}
'Coding > Programers' 카테고리의 다른 글
[ Programmers ] 조건에 맞게 수열 변환하기 2 ( java ) 72 / 124 (0) | 2024.01.05 |
---|---|
[ Programmers ] 조건에 맞게 수열 변환하기 1 ( java ) 71 / 124 (0) | 2024.01.05 |
[ Programmers ] 보다 커질 때까지 더하기 ( java ) 69 / 124 (0) | 2024.01.05 |
[ Programmers ] 할 일 목록 ( java ) 68 / 124 (2) | 2024.01.05 |
[ Programmers ] 5명씩 ( java ) 67 / 124 (1) | 2024.01.05 |