티스토리 뷰

문제 링크 : https://leetcode.com/problems/defuse-the-bomb/description/

🍊해결방법

  • 배열이 주어졌을 때 해당 idx에서 1~k만큼 움직이면서 합한 수를 idx에 저장하자
  • 모듈러 연산을 활용해서 배열의 idx 범위안에서 탐색하도록 하자

😀풀이

import java.util.*;

class Solution {
    public int[] decrypt(int[] code, int k) {
        
        int N = code.length;

        int[] arr = new int[N];

        // 정방향으로 k만큼 합
        if(k > 0){

            for(int i=0; i<N; i++){

                int sum = 0;

                for(int j=1; j<=k; j++){
                    sum += code[(i+j)%N];        
                }


                arr[i] = sum;

            }
            
        }
        // 역방향으로 k만큼 합
        else if(k < 0){

            for(int i=0; i<N; i++){

                int sum = 0;

                for(int j=k; j<=-1; j++){
                    sum += code[(i+N+j)%N];
                }

                //System.out.println(sum);

                arr[i] = sum;

            }

        }
        // 0으로 바꾸기
        else{
            for(int i=0; i<N; i++){
                arr[i] = 0;
            }
        }
        
        return arr;
    }
}