본문 바로가기
코딩테스트

프로그래머스 Javascript 코딩 테스트 Lv.0 암호해독

by 곰인간 2024. 5. 9.

암호화된 문자열 cipher

cipher문자열에서 code의 배수 번째 글자를 찾아야함

일단 먼저 문자열 cipher를 배열로 변환

const solution = (cipher, code) => {
	let answer = []
    
    let arr = [...cipher]
    
    return answer
}

주어진 배열에서 code번째를 찾아야하는데

const solution = (cipher, code) => {
	let answer = []
    
    let arr = [...cipher]
    
    for (let i = 0; i < arr.length; i++) {
    	if ((i + 1) % code === 0) {
        	answer.push(arr[i])
        }
    }
    
    return answer.join('')
}

일단 나는 for문을 사용해서 배열을 순환해서 code번째의 문자를 찾았다.

먼저 for문의 조건문 부분에 배열의 길이보다 적게 조건을 줬는데 이유는

배열의 index는 0부터 시작하기 때문이다. 아니면 i <= arr.length - 1 이렇게 하는 방법도 있다.

그 다음 왜 if 조건문에서 i + 1을 해줬냐면 위 설명과 마찬가지로

배열은 index 0부터 시작인데 code번째의 숫자를 찾으려면 index 0부터 포함되어야하니 i + 1을 해준다.

const solution = (cipher, code) => {
	let answer = []
    
    let arr = [...cipher]
    
    for (let i = code - 1; i < arr.length; i += code) {
    	answer.push(arr[i])
    }
    
    return answer.join('')
}

아니면 애초에 for 초기문 증감문에서 code의 배수를 정해주는 방법도 있다.

댓글