[JavaScript] Lv0 - qr code

Moon·2025년 1월 12일
0
post-thumbnail

qr code

문제 설명

두 정수 qr과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항

  • 0 ≤ r < q ≤ 20
  • r < code의 길이 ≤ 1,000
  • code는 영소문자로만 이루어져 있습니다.

입출력 예

qrcoderesult
31"qjnwezgrpirldywt""jerry"
10"programmers""programmers"

입출력 예 설명

입출력 예 #1

  • 예제 1번의 q와 r은 각각 3, 1이고 인덱스와 그 값을 q로 나눈 나머지가 잘 보이도록 표로 만들면 다음과 같습니다.
codeqjnwezgrpirldywt
index0123456789101112131415
q로 나눈 나머지0120120120120120

`q로 나눈 나머지가 1인 인덱스의 문자들을 앞에서부터 순서대로 이어 붙이면 "jerry"가 되므로 이를 return 합니다.`

입출력 예 #2

  • 예제 2번의 q와 r은 각각 1, 0이고 인덱스와 그 값을 q로 나눈 나머지가 잘 보이도록 표로 만들면 다음과 같습니다.
codeprogrammers
index012345678910
q로 나눈 나머지00000000000

`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";

코드 설명

  1. [...code]:
    • 문자열 code를 전개 연산자(...)를 사용해 문자 배열로 변환합니다.
    • 예: "qjnwezgrpirldywt"['q', 'j', 'n', 'w', 'e', 'z', 'g', 'r', 'p', 'i', 'r', 'l', 'd', 'y', 'w', 't'].
  2. filter 메서드:
    • filter는 배열의 각 요소와 인덱스를 순회하면서 주어진 조건에 맞는 요소만 추출합니다.
    • 조건: (idx % q === r):
      • idx % q는 현재 인덱스를 q로 나눈 나머지를 계산합니다.
      • 이 값이 r과 같을 때, 해당 문자를 추출합니다.
  3. join(''):
    • filter로 추출한 문자 배열을 다시 문자열로 결합합니다.
    • 예: ['j', 'e', 'r', 'r', 'y']"jerry".
profile
MOON.DEVLOG

0개의 댓글