level 0
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/181922
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제 설명]
arr : 변환하려는 배열
queries : 변환 조건 [ s, e, k ]
s <= i <= e 이면서, i 가 k의 배수이면 arr[i] 를 +1 하라는 조건
위와 같은 예시가 주어졌을 때,
시작 : arr = [0, 1, 2, 4, 3]
첫번째 조건 : query = [ 0, 4, 1 ]
s = 0 / e = 4 / k = 1
0 <= i <= 4 일 때, i = 0, 1, 2, 3, 4
0, 1, 2, 3, 4 모두 1의 배수이므로, 모든 값 + 1
arr = [1, 2, 3, 5, 4]
두번째 조건 : query = [ 0, 3, 2 ]
s = 0 / e = 3 / k = 2
0 <= i <= 3 일 때, i = 0, 1, 2, 3
0, 2 가 2의 배수이므로 arr[0], arr[2] 에 대해 +1
arr = [2, 2, 4, 5, 4]
세번째 조건 : query = [ 0, 3, 3 ]
s = 0 / e = 3 / k = 3
0 <= i <= 3 일 때, i = 0, 1, 2, 3
0, 3 이 3의 배수이므로 arr[0], arr[3] 에 대해 +1
arr = [3, 2, 4, 6, 4]
[풀이]
import java.util.*;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
int[] answer = Arrays.copyOf(arr, arr.length);
for(int[] query : queries) {
int s = query[0];
int e = query[1];
int k = query[2];
for(int i=s; i<=e; i++) {
if(i%k==0) {
answer[i] = answer[i] + 1;
}
}
}
return answer;
}
}
'IT > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 - java (0) | 2025.03.25 |
---|---|
[프로그래머스] 문자열 여러 번 뒤집기 - java (0) | 2025.03.18 |
[프로그래머스] 원하는 문자열 찾기 - java (1) | 2025.03.16 |
[프로그래머스] 특정한 문자를 대문자로 바꾸기 - java (0) | 2025.03.16 |
[프로그래머스] 수열과 구간 쿼리 3 - java (0) | 2025.03.16 |