전광판 문자 출력

rlorxl·2022년 5월 3일
0

문제

n개의 문자를 보여주는 크기가 n인 전광판이 있습니다. 전광판의 문자는 오른쪽에서 왼쪽으로 반복해서 흘러가며, 1초에 한 글자씩 흘러갑니다.

예를 들어, 크기가 5인 전광판에 "Snowball" 노출한다고 가정할 때, 시간 t의 변화에 따른 노출 예시는 다음과 같습니다.

0s : '.....'
1s : '....S'
5s : 'Snowb'
10s : 'all..'
15s : '...Sn'

전광판의 크기 n과 전광판에 노출할 문자 s 그리고 시간 t가 주어질 때, t 초 후의 전광판에 표시될 문구를 출력하는 함수, solution을 완성해주세요.

제한 사항
전광판의 문자는 1초부터 흐르기 시작합니다.

입력 형식

  • n은 1 이상 50 이하의 정수입니다.
  • s는 길이가 1 이상 100 이하의 문자열입니다.
  • s는 알파벳 대/소문자와 숫자로 구성됩니다.
  • t는 1 이상 1000 이하의 정수입니다.

출력 형식

  • t 초 후, 주어진 전광판에 노출되는 문자를 출력합니다.
  • 전광판의 공백은 마침표(".")로 대체하여 출력합니다.

코드

function solution(n,s,t){
	const text = '.'.repeat(n) + s + '.'.repeat(n - 1);

    // 반복주기 
    const duration = n + s.length; // 전광판의 크기 + 문자의 길이

    // 반복되는 주기를 '제외하고 남은 시간'
    const time = t % duration; // 시간 나누기 반복주기의 나머지
  
    result = text.substr(time ,n); 
    return result;  
}

repeat() : 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.
substr() : 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다.

profile
즐겜하는거죠

0개의 댓글