[Programmers]암호 해독

따봉도치 개발자·2023년 3월 6일
0

암호 해독

function solution(cipher, code) {
    // for(i = code를 넣고 cipher.length만큼 돌리고 필요한 건 code의 배수니까 i+=code)
    // answer 값에 인덱스 0부터 시작이니 -1 넣자
  var answer = "";
    
  for (let i = code; i <= cipher.length; i += code) {
    answer += cipher[i-1];
  }
  return answer;
}

깨달았다...

처음에 습관적으로 for(let i = 0; cipher.length; i++)에 if 문에 어떻게 조건을 줘야 할지 고민했다. code라는 변수의 배수만큼 인덱스를 구해야 하는데 조건이 떠오르지가 않았다..... 그래서 while을 쓰다 '않이!' 그냥 i 변수에 code 값을 넣고 반복문이 돌 때마다 i에 code를 더해주면 되지 않을까라는 생각을 했다. 하지만, 결괏값이 아래처럼 나왔다....

결과값 >"dfjardstddetckdaccccdegk", 4
기댓값 〉	"attack"
실행 결과 〉	실행한 결괏값 "rdccdundefined"이 기댓값 "attack"과 다릅니다.

뚫어지게 보니까 첫 번째 인덱스가 a부터 시작해야 되는데 '않이..?' r부터 시작이고 code 값인 4만큼씩 보니 인덱스를 1칸 당겨야 된다는 생각을 했다! 0부터 시작이니까!
휴... 깨달았다..

남의 맛있는 코드

맛있어 보인다..
function solution(cipher, code) {
    return cipher.split('').filter((v,i)=>(i+1)%code===0).join('');
}
profile
Explain Like I'm 5

0개의 댓글