반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 프로그래머스 가운데 글자 가져오기 자바
- docker remove
- 핸즈온 머신러닝
- 가운데 글자 가져오기 파이썬
- 최소 스패닝 트리
- m1 docker install
- 빅분기실기
- 나누어 떨어지는 숫자 배열 python
- 코드업 1020 자바
- 최소 스패닝 트리 자바
- 프로그래머스 가운데 글자 가져오기 python
- 가운데 글자 가져오기 java
- docker 완전 삭제
- 코드업 1020 java
- 나누어 떨어지는 숫자 배열 java
- 프로그래머스 가운데 글자 가져오기 파이썬
- 청년 AI Big Data 아카데미 13기
- 가운데 글자 가져오기 자바
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- 청년 Ai Big Data 아카데미
- 가운데 글자 가져오기 python
- 빅데이터분석기사
- codeup 1020 java
- codeup 1020 자바
- 최단 경로 알고리즘
- docker 삭제
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- 트리의 지름 java
- m1 docker
- 트리의 지름 자바
Archives
- Today
- Total
NineTwo meet you
[백준/자바] 12871 무한 문자열 본문
반응형

문제
문자열 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
알고리즘 분류
- 문자열
설명
두 문자열이 주어졌을때 두 문자열의 길이의 최소 공배수를 구한다.
최소 공배수의 길이만큼 두 문자열을 붙인 문자열을 만든 뒤 같은 문자열인지 판단한다.
코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.BufferedReader; | |
import java.io.IOException; | |
import java.io.InputStreamReader; | |
public class BOJ12871 { | |
public static void main(String[] args) throws IOException { | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
String s = br.readLine(); | |
String t = br.readLine(); | |
String S = s; | |
String T = t; | |
if(s.length() != t.length()) { | |
int len = LCM(s.length(), t.length()); | |
while(S.length() != len) { | |
S += s; | |
} | |
while(T.length() != len) { | |
T += t; | |
} | |
} | |
if(S.equals(T)) System.out.print(1); | |
else System.out.print(0); | |
} | |
static int GCD(int a, int b) { | |
while(b > 0) { | |
int temp = a; | |
a = b; | |
b = temp%b; | |
} | |
return a; | |
} | |
static int LCM(int a, int b) { | |
return (a*b)/GCD(a, b); | |
} | |
} |
반응형
'프로그래밍 문제 > 백준' 카테고리의 다른 글
[백준/자바] 10986 나머지 합 (0) | 2021.01.27 |
---|---|
[백준/자바] 11659 구간 합 구하기 4 (0) | 2021.01.27 |
[백준/자바] 2210 숫자판 점프 (0) | 2021.01.26 |
[백준/자바] 4991 로봇 청소기 (0) | 2021.01.26 |
[백준/자바] 11657 타임머신 (0) | 2021.01.25 |
Comments