나는 다음 단계에 따라 문제를 분석하였다.
여기서 조금 헷갈렸던 부분은 (index + K) % A.length
부분이다. 예를 들어 index = 0이고, K = 3이다. 그리고 A.length = 5라고 가정했을 때, 3 % 5 = ? 와 같은 식이 성립된다. 여기서 잘못 이해하면 3 % 5는 소수점이 아닌가? 라고 생각 할 수도 있다.
하지만 프로그래밍 언어에서는 3을 5로 나눌 수 없다고 판단하여 몫을 0으로 유지하고 나머지로 왼쪽 값을 그대로 반환해준다. 즉 3 % 5 = 3이 되는 것이다. 이 부분을 확실히 하고 넘어가자.
쉽게 이야기하면 연산자를 기준으로 왼쪽 숫자가 오른쪽 숫자보다 작다면 나머지는 왼쪽 숫자가 된다.
A.length만큼의 int[] 생성
for(int[] 길이만큼){
int[]의 (i + K) % A.length = A[i]로 대입
}
결과 반환
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] A, int K) {
int[] answer = new int[A.length];
for(int i = 0; i < A.length; i++){
answer[(i+K) % A.length] = A[i];
}
return answer;
}
}