import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine());
for(int i=0;i<T;i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int X = Math.max(A, B);
int Y = Math.min(A, B);
int common = X;
while(true) {
if (common % Y == 0)
break;
common += X;
}
bw.write(common + "\n");
}
bw.flush();
bw.close();
}
}
내 방식대로 푸니 속도가 288ms
가 나왔다.
88ms
로 나온 사람들 거를 보니 다들 유클리드 호제법
을 이용해서 풀던데, 그거 사용해봐야겠다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String S = br.readLine();
String[] arr = new String[S.length()];
for(int i=0;i<arr.length;i++) {
arr[i] = S.substring(i);
}
Arrays.sort(arr);
for(int i=0;i<arr.length;i++) {
bw.write(arr[i] + "\n");
}
bw.flush();
bw.close();
}
}