
😎풀이
- 해독 코드가 적용될 배열 선언
- k에 따라 다른 처리
2-1. k가 양수인 경우, 다음 k개의 숫자 합을 더하여 현재 인덱스의 해독 코드로 저장
2-2. k가 0인 경우, 모든 코드는 0으로 적용
2-3. k가 음수인 경우, 이전 k개의 숫자 합을 더하여 현재 인덱스의 해독 코드로 저장
- 해독된 코드 반환환
function decrypt(code: number[], k: number): number[] {
const n = code.length
const decrypt = new Array(n)
if(k > 0) {
for(let i = 0; i < n; i++) {
let sum = 0
for(let j = 1; j <= k; j++) {
const curIdx = (i + j) % n
sum += code[curIdx]
}
decrypt[i] = sum
}
} else if(k === 0) {
return decrypt.fill(0)
} else if(k < 0) {
const absK = Math.abs(k)
for(let i = 0; i < n; i++) {
let sum = 0
for(let j = 1; j <= absK; j++) {
const curIdx = (i - j + n) % n
sum += code[curIdx]
}
decrypt[i] = sum
}
}
return decrypt
};