
두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
r < q ≤ 20r < code의 길이 ≤ 1,000code는 영소문자로만 이루어져 있습니다.| q | r | code | result |
|---|---|---|---|
| 3 | 1 | "qjnwezgrpirldywt" | "jerry" |
| 1 | 0 | "programmers" | "programmers" |
입출력 예 #1
q와 r은 각각 3, 1이고 인덱스와 그 값을 q로 나눈 나머지가 잘 보이도록 표로 만들면 다음과 같습니다.code | q | j | n | w | e | z | g | r | p | i | r | l | d | y | w | t |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
q로 나눈 나머지 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 | 1 | 2 | 0 |
`q로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "jerry"가 되므로 이를 return 합니다.`
입출력 예 #2
q와 r은 각각 1, 0이고 인덱스와 그 값을 q로 나눈 나머지가 잘 보이도록 표로 만들면 다음과 같습니다.code | p | r | o | g | r | a | m | m | e | r | s |
|---|---|---|---|---|---|---|---|---|---|---|---|
| index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
q로 나눈 나머지 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
`q로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "programmers"가 되므로 이를 return 합니다.`
function solution(q, r, code) {
// 필터링하여 q로 나눈 나머지가 r인 문자를 추출하고 반환
return [...code].filter((_, idx) => idx % q === r).join('');
}
// 입출력 예 테스트
console.log(solution(3, 1, "qjnwezgrpirldywt")); // "jerry"
console.log(solution(1, 0, "programmers")); // "programmers";
[...code]:code를 전개 연산자(...)를 사용해 문자 배열로 변환합니다."qjnwezgrpirldywt" → ['q', 'j', 'n', 'w', 'e', 'z', 'g', 'r', 'p', 'i', 'r', 'l', 'd', 'y', 'w', 't'].filter 메서드:filter는 배열의 각 요소와 인덱스를 순회하면서 주어진 조건에 맞는 요소만 추출합니다.(idx % q === r):idx % q는 현재 인덱스를 q로 나눈 나머지를 계산합니다.r과 같을 때, 해당 문자를 추출합니다.join(''):filter로 추출한 문자 배열을 다시 문자열로 결합합니다.['j', 'e', 'r', 'r', 'y'] → "jerry".