728x90
반응형
- 문제 설명
군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.
- 암호화된 문자열 cipher를 주고받습니다.
- 그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.
문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.
내 첫 번째 방법은 별 거 없었다.
고차함수를 사용할까 하다가 머리가 잘 안돌아가서 그냥 문자열로 for문을 돌리기로 하였다.
여기서 중요한 것은, code가 자릿수를 뜻함으로 index + 1이라는 것.
그걸 기반으로 for문을 돌렸다.
function solution(cipher, code) {
let answer = "";
for (let i = code-1; i < cipher.length; i+=code){
answer += cipher[i];
}
return answer;
}
이걸 풀고 나니 정신이 조금씩 멀쩡해지기 시작해서 고차함수를 이용해보았다.
여기서 하나 꿀팁, filter는 콜백함수의 인자로 value, index, array를 받을 수 있다.
나는 그 점을 이용해서 코드를 짜보았다.
value는 사용 안하고 index만 사용할시 value 자리에 _를 넣어주면 된다.
code 자릿수는 index + 1이므로 (index + 1) % code === 0인 조건을 filter를 통해서 찾아내면 된다.
찾게 되면 join()을 이용해 배열을 문자열로 합쳐준 후 return!
function solution(cipher, code) {
return cipher.split('').filter((_, index) => (index + 1) % code === 0).join('');
}
728x90
반응형
'코딩테스트' 카테고리의 다른 글
프로그래머스 자바스크립트 문자열 다루기 기본 (0) | 2023.04.23 |
---|---|
프로그래머스 자바스크립트 약수의 개수와 덧셈 (0) | 2023.04.16 |
프로그래머스 자바스크립트 숨어있는 숫자의 덧셈 (1) (0) | 2023.03.22 |
프로그래머스 자바스크립트 모음 제거 (0) | 2023.03.22 |
프로그래머스 자바스크립트 문자열 안에 문자열 (0) | 2023.03.22 |
댓글