1850번: 최대공약수
모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A
www.acmicpc.net
두 수의 최대공약수만큼 1을 반복하면 되는 문제
그런데 for문을 그냥 System.out.println("1");로 썼더니 시간초과가 발생했다.
그래서 stringbuilder클래스 사용하여 문제를 해결!
StringBuilder클래스=> 문자열 저장하기위한 메모리 공간有, 문자 추가/삭제 가능
public StringBuilder append(int i)
-> 기본 자료형 데이터를 문자열 내용에 추가
public StringBuilder delete(int start, int end)
-> 인덱스 start에서부터 end 이전까지의 내용을 삭제
public StringBuilder insert(int offset, String str)
-> 인덱스 offset의 위치에 str에 전달된 문자열 추가
public StringBuilder replace(int start, int end, String str)
-> 인덱스 start에서부터 end 이전까지의 내용을 str의 문자열로 대체
public StringBuilder reverse()
-> 저장된 문자열의 내용을 뒤집기
public String substring(int start, int end)
-> 인덱스 start에서부터 end 이전까지의 내용만 담은 String 인스턴스의 생성 및 반환
public String toString()
-> 저장된 문자열의 내용을 담은 String 인스턴스의 생성 및 반환
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long num1 = sc.nextLong();
long num2 = sc.nextLong();
long gcd = get_gcd(Math.max(num1, num2), Math.min(num1, num2));
StringBuilder sb = new StringBuilder();
for(int i = 0; i < gcd; i++)
sb.append("1");
System.out.println(sb.toString());
}
public static long get_gcd(long a, long b) {
if(b==0) return a;
else return get_gcd(b,a%b);
}
}
#백준 #1850 #java #기초수학
'Coding Test > Baekjoon - Java' 카테고리의 다른 글
11005: 진법 변환 2 (0) | 2021.02.15 |
---|---|
9613: GCD합 (0) | 2021.02.15 |
1934: 최소공배수 (0) | 2021.02.15 |
2609: 최대공약수와 최소공배수 (0) | 2021.02.15 |
10430: 나머지 (0) | 2021.02.15 |