반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[문자열] 백준 - 무한 문자열 본문
728x90
반응형
https://www.acmicpc.net/problem/12871
-문제해설
문자열 s와 t를 입력받고 두 문자열을 같은 길이가 될 때까지 문자열을 늘린다음 비교해서 같으면 1 다르면 0을 출력하는 문제이다. 두 문자열의 길이를 같게해야되기 때문에 최소공배수까지 문자열을 늘리면 되는데 파이썬에서는 그냥 서로의 길이만큼 문자열을 곱해서 풀었다.
자바랑 파이썬 코드 길이 너무 심한거 같다..... 갓 파이썬
-자바
package string;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
public class BJ12871 {
private static BufferedWriter bw =
new BufferedWriter( new OutputStreamWriter(System.out));
private static String s, t;
private static int max, lcm;
private static ArrayList<Integer> so = new ArrayList<Integer>();
private static StringBuilder sb = new StringBuilder();
private static StringBuilder tb = new StringBuilder();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
s = br.readLine();
t = br.readLine();
sb.append(s);
tb.append(t);
int a = s.length();
int b = t.length();
max = Math.max( a, b );
//이따가 최소공배수 구하기 위한 소수구하기
so.add( 2 );
for( int i=3; i<=max; i++ ) {
for( int j=0; j<so.size(); j++ ) {
if( i%so.get(j)==0 ) break;
if( j==so.size()-1 && i%so.get(j)!=0 ) so.add(i);
}
}
//최소공배수 구하기
lcm = 1;
int i = 0;
while( true ) {
if( i==so.size()-1 && ( a%so.get(i)!=0 || b%so.get(i)!=0 ) ) {
lcm *= a*b;
break;
}
if( a%so.get(i)==0 && b%so.get(i)==0 ) {
lcm *= so.get(i);
a /= so.get(i);
b /= so.get(i);
} else i++;
}
//두 문자열 최소공배수까지 문자열 만들기
for( int j=0; j<(lcm/s.length())-1; j++ ) sb.append(s);
for( int j=0; j<(lcm/t.length())-1; j++ ) tb.append(t);
//두 문자열 비교
if( sb.substring(0, lcm).equals( tb.substring(0, lcm) ) ) bw.write( 1 + "\n" );
else bw.write( 0 + "\n" );
bw.flush();
bw.close();
br.close();
}
}
-파이썬
s = input(); t = input(); print( int( s*len(t) == t*len(s) ) )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[수학] 백준 - 레벨햄버거 (0) | 2021.07.21 |
---|---|
[구현] 백준 - 겉넓이 구하기 (0) | 2021.07.20 |
[수학] 백준 - 시험 감독 (0) | 2021.07.19 |
[그리디, 수학, 구현] 백준 - 전자레인지 (0) | 2021.07.18 |
[수학, 구현] 백준 - 문어 (0) | 2021.07.18 |
Comments