Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 7567
  • 백준 24039
  • 백준 16194
  • 백준 3049
  • 백준 7662
  • 백준 1064
  • 백준 3135
  • 백준 15312
  • Java
  • 백준 8892
  • 백준
  • 백준 4659
  • 백준 2343
  • 백준 6550
  • 백준 1531
  • 백준 12871
  • 백준 10709
  • 백준 2225
  • 백준 15961
  • 백준 1011
  • 백준 14582
  • 백준 1495
  • 백준 1914
  • 백준 1747
  • 백준 16926
  • 백준 15655
  • 백준 2591
  • 백준 2467
  • 백준 12605
  • 자바
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 12871 무한 문자열(Java)
백준

백준 12871 무한 문자열(Java)

2023. 2. 23. 22:36

https://www.acmicpc.net/problem/12871

 

12871번: 무한 문자열

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 먼저 2개의 문자열을 입력받은 후 문자열 길이의 최소공배수를 구해줍니다. 그다음 문자열의 길이가 최소공배수의 길이가 될 때까지 반복해서 붙여줍니다. 그다음 2개의 문자열을 비교한 후 같으면 1, 다르면 0을 출력해 주면 되는 문제입니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    
    String s = sc.next();
    String t = sc.next();
    String x = "";
    String y = "";

    int a = s.length();
    int b = t.length();

    int num = gcd(a, b);
    
    int l = a * b / num;
    

    for(int i = 0; i < l / a; i++) x += s;
    for(int i = 0; i < l / b; i++) y += t;

    if(x.equals(y)) System.out.println(1);
    else System.out.println(0);
  }

  public static int gcd(int a, int b) {
    if(b == 0) return a;
    else return gcd(b, a % b);
  }
}

'백준' 카테고리의 다른 글

백준 7576 토마토(Java)  (0) 2023.02.24
백준 13335 트럭(Java)  (1) 2023.02.24
백준 24039 2021은 무엇이 특별할까(Java)  (0) 2023.02.23
백준 2531, 15961 회전초밥(Java)  (0) 2023.02.23
백준 3135 라디오(Java)  (0) 2023.02.23
    '백준' 카테고리의 다른 글
    • 백준 7576 토마토(Java)
    • 백준 13335 트럭(Java)
    • 백준 24039 2021은 무엇이 특별할까(Java)
    • 백준 2531, 15961 회전초밥(Java)
    Park DJ
    Park DJ

    티스토리툴바