백준_무한 문자열_12871

Minji Lee·2024년 12월 2일
0

JS코딩테스트

목록 보기
82/122

무한 문자열

문제

문자열 s가 있을 때, f(s)는 s를 무한번 붙인 문자열로 정의한다. 예를 들어, s = "abc" 인 경우에 f(s) = "abcabcabcabc..."가 된다.

다른 문자열 s와 t가 있을 때, f(s)와 f(t)가 같은 문자열인 경우가 있다. 예를 들어서, s = "abc", t = "abcabc"인 경우에 f(s)와 f(t)는 같은 문자열을 만든다.

s와 t가 주어졌을 때, f(s)와 f(t)가 같은 문자열을 만드는지 아닌지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 s, 둘째 줄에 t가 주어진다. 두 문자열 s와 t의 길이는 50보다 작거나 같은 자연수이고, 알파벳 소문자로만 이루어져 있다.

출력

첫째 줄에 f(s)와 f(t)가 같으면 1을, 다르면 0을 출력한다.

예제 입력 1

ab
abab

예제 출력 1

1

예제 입력 2

abc
bca

예제 출력 2

0

Code

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

const s = input[0];
const t = input[1];

const length = s.length * t.length; // s와 t 문자열 길이 곱하기

const f_s = s.repeat(parseInt(length / s.length)); // 곱한 길이만큼 문자열 만들기
const f_t = t.repeat(parseInt(length / t.length));

if (f_s === f_t) console.log(1);
else console.log(0);

풀이 및 해설

  • t 문자열 길이 * s 문자열 길이만큼 t와 s 반복하여 f(s)와 f(t) 구하기

0개의 댓글