문제 설명
군 전략가 머쓱이는 전쟁 중 적군이 다음과 같은 암호 체계를 사용한다는 것을 알아냈습니다.
암호화된 문자열 cipher를 주고받습니다.
그 문자열에서 code의 배수 번째 글자만 진짜 암호입니다.
문자열 cipher와 정수 code가 매개변수로 주어질 때 해독된 암호 문자열을 return하도록 solution 함수를 완성해주세요.
i % code === 0
answer.push(arr[i-1])
function solution(cipher, code) {
const arr = cipher.split('')
const answer = [];
for(let i = code; i <= arr.length; i++) {
if(i % code === 0) {
answer.push(arr[i-1])
}
}
return answer.join('')
}
문자열에서 배열로 만드는 것이 아니라 바로 for문을 돌리는 방법도 있었다.
const는 안 되고, var로 하면 가능
const로 선언된 변수는 할당된 이후엔 값이 변경될 수 없기때문!
=> const로 선언한 경우,answer
변수에 값을 할당하는 것이 불가능해져서 런타임에러가 발생함
var로 선언된 변수는 값을 여러번 할당할 수 있다.
=> var로 선언한 경우,answer
변수에 값을 할당하는 것이 가능함
function solution(cipher, code) {
var answer = '';
for(let i = 1; i <= cipher.length; i++) {
if(i % code === 0)
answer = answer + cipher[i-1]
}
return answer;
}
if문 없이 for문 내에서 i를 code의 배수만큼 증가해서 풀면 훨씬 깔끔하게 풀 수 있었다!
function solution(cipher, code) {
var answer = '';
for(let i = code - 1; i < cipher.length; i += code) {
answer += cipher[i]
}
return answer;
}