본문 바로가기
알고리즘•코테 포스트잇

[JavaScript] 프로그래머스_암호 해독

by eddy0223 2023. 5. 26.
까먹으면 볼라고 씀
  • 암호 해독
문제 설명

군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.

  • 암호화된 문자열 cipher를 주고받습니다.
  • 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.

문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.

 

for 문

code-1을 해줘야 index 3 즉 네 번째부터 적용이 되기 때문입니다!

function solution(cipher, code) {
  var answer = "";
    
  for (let i = code - 1; i < cipher.length; i += code) {
    answer += cipher[i];
  }
    
    return answer;
}

split(), filter(), join()

function solution(cipher, code) {
  return cipher
    .split("")
    .filter((data, index) => (index + 1) % code === 0)
    .join("");
}

 

  • split(“”) : 문자열을 각 문자로 분할하여 배열로 변환
  • filter() : 배열의 요소를 순회하면서 필터링 조건을 적용
    예시 :  .filter((data, index) => (index + 1) % code === 0)
    - data: 배열의 현재 요소 값입니다. 경우 cipher 문자열의 문자가 data 전달됩니다.
    - index: 배열의 현재 요소의 인덱스 값입니다. 값은 0부터 시작하여 배열의  길이보다 작은 정수로 증가합니다.
    - filter() 메서드는 콜백 함수를 요소에 대해 실행하고, 콜백 함수가 true 반환하는 요소만 새로운 배열에 포함시킵니다.
       여기서는 (index + 1) % code === 0 조건을 사용하여 index 값이 code 배수인 요소만 필터링합니다.
  • 따라서, 콜백 함수 내에서 data 현재 처리 중인 cipher 문자열의 문자 나타내고, index 해당 문자의 인덱스 나타냅니다