1. ๋ฌธ์ ์ค๋ช ๐
(1) ๋งํฌ๐
https://www.acmicpc.net/problem/1850
(2) ํด์ค๐ต
์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ A
์ B
๋ 1๋ก ์ด๋ฃจ์ด์ง ์ซ์์ ๊ธธ์ด์ธ๋ฐ, ๊ทธ ๊ธธ์ด๊ฐ $2^{63}$์ผ๋ก ๋๋ฌด ๊ธธ๋ค. ๋ถ๋ช
์ด A
์ B
๊น์ง๋ Long ์๋ฃํ์ผ๋ก ํํํ ์ ์๊ฒ ์ผ๋, ๊ทธ๊ฒ์ด ์ค์ ๊ฐ๋ฆฌํค๋ 1๋ก ์ด๋ฃจ์ด์ง ์ซ์๋ ํํํ๊ธฐ๊ฐ ์ด๋ ต๋ค. (์ซ์์ ๊ธธ์ด๊ฐ 2^{63}์ด๋ผ BigInteger๋ก๋ ํ๋ค ๋ฏ ํ๋ค.) ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผํ ์ ์
- 1๏ธโฃ 1๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.
- 2๏ธโฃ ๋ฌธ์ ์ ๋ชฉ์ด ์ต๋๊ณต์ฝ์ ์ด๋ค.
์ ๋ ์ผ ๊ฒ์ด๋ค.
2. ์๊ฐ์ ํ๋ฆ: ์ฝ๋๊ฐ ๋์ค๊ธฐ๊น์ง ๐๏ธ
(1) IDEA ๋์ถ๐ก
KEY WORD
: ๋ฌธ์์ด GCD
์์์ ๋ฌธ์์ด A
,B
๊ฐ ํน์ ๋ฌธ์์ด ํจํด P
์ ๋ฐ๋ณต์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ ๊ฒฝ์ฐ, ๋์ ์ต๋ ๊ณต์ฝ์ ๋ฌธ์์ด
์ ๊ธธ์ด๋ $A = n * P$, $B = m * P$ ์ผ ๋, GCD(n,m)
์ด๋ค.
์ต๋ ๊ณต์ฝ์ ๋ฌธ์์ด ์ด๋?
์์์ ๋ฌธ์์ด A
,B
๊ฐ ํน์ ํ ๋ฌธ์์ด ํจํด P
์ ๋ฐ๋ณต์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ ๋, ๋ A,B๋ฅผ ๋ฐ๋ณต์ผ๋ก ๋ง๋ค ์ ์๋ ๋ฌธ์์ด ์ค ๊ธธ์ด๊ฐ ๊ฐ์ฅ ๊ธด ๊ฒ์ ๋งํ๋ค.
์ด๊ฒ์ ์ค๋ช
ํ ์ด์ ๋ A
,B
๊ฐ 1๋ก๋ง ์ด๋ฃจ์ด์ง ์์ด๊ธฐ์, A
, B
๋ฅผ ํจํด 1์ ๋ฐ๋ณต์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด๋ก ๋ด๋ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ์์ ๊ณต์ฝ์๋ ์ด๋ค ํํ์ธ๊ฐ, ๊ณต์ฝ์์ ๋ชจ์ต ๋ํ 1์ ๋ฐ๋ณต์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ํํ์ด๋ค. ์์ 2๋ฅผ ๋ณด๋ฉด, 111111๊ณผ 111์ ๊ณต์ฝ์๋ฅผ ๊ตฌํด์ผ ํ๋๋ฐ, 111111์ 111๋ก 2๋ฒ ๋๋์ด์ง๊ณ , 111์ 111 ํ ๋ฒ์ผ๋ก ๋๋์ด์ง๊ธฐ์, ๋์ ๊ณต์ฝ์์ 111์ด ์์์ ์ ์ ์๋ค. ์ด๋ ๋ง์น ํ ๋ง ๋ด๊ธฐ์ ๊ฐ๋ค. ๋ค์์ ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ 18,12์ผ ๋ ์ต๋ ๊ณต์ฝ์ ๋ฌธ์์ด์ ์ฐพ์๋ณด๊ฒ ๋ค.
๋ ์๋ฅผ 11111๋ก ํ ๋ง ๋ด๋ณด๋, ๋ฑ๊ฐ๊ฐ ๋จ์๋ค. ๊ณ ๋ก 11111์ ๊ณต์ฝ์๊ฐ ์๋๋ค.
๊ธธ์ด 6์ ๋ ๋ฌธ์์ด์ ๋ฑ๊ฐ ์์ด ๋๋ด๋ค. ๋ฐ๋ผ์ 111111์ ๋ ์์ ๊ณต์ฝ์์ด๊ณ , ์ด๋ณด๋ค ํฐ ์๊ฐ ์์ผ๋ฏ๋ก ์ต๋ ๊ณต์ฝ์๊ฐ ๋๋ค.
๋์น์ฑ๋๊ฐ?
1๋ก ์ด๋ฃจ์ด์ง ๋ ๋ฌธ์์ด ์ฌ์ด์ ์ต๋ ๊ณต์ฝ์์ ๊ธธ์ด๋ ๋ ์์ ๊ธธ์ด์ ์ต๋๊ณต์ฝ์์ ๊ฐ๋ค. ์ด ์ฑ์ง์ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํ๋ฉด ๋๋ค.
(2) SUDO CODE ๐
- 1๏ธโฃ ๋ ๋ฌธ์์ด์ ๊ธธ์ด
A
,B
์ ์ต๋ ๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค. - 2๏ธโฃ ์ต๋๊ณต์ฝ์์ ์๋งํผ StringBuilder์ 1์ ์ถ๊ฐํ์ฌ ํด๋น ๊ธธ์ด๋ก ์ด๋ฃจ์ด์ง 1๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๋ง๋ค์ด ์ถ๋ ฅํ๋ค.
(3) ์๊ฐ๋ณต์ก๋ ๋ถ์ ๐
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์๊ฐ ๋ณต์ก๋๋ $O(log N)$์ด๋ค. N์ ์ต๋๊ฐ์ $2^{63}$์ด๋ค.
3. ๊ตฌํ ์ฝ๋ ๐
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
/*
* b 1850 ์ต๋ ๊ณต์ฝ์
* ์ฐ๋ฆฌ๊ฐ ๊ตฌํด์ผ ํ ๋ ์์ ๊ธธ์ด๋ฅผ ๋ปํ๋ A,B์ ๊ณต์ฝ์ G๊ฐ ๋ต์ด ๋๋ 1๋ค์ ๊ธธ์ด
* */
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
Long A = Long.parseLong(st.nextToken());
Long B = Long.parseLong(st.nextToken());
Long R = GCD(A,B);
StringBuilder ans = new StringBuilder();
for (int i = 0; i < R; i++) {
ans.append(1);
}
System.out.println(ans);
}
public static Long GCD(Long A, Long B) {
Long R = A%B;
while (R != 0) {
A = B;
B = R;
R = A%B;
}
return B;
}
}
4. ๋ฐฐ์ด ๊ฒ๋ค ๐ฏ
ํจํด ๋ฌธ์์ด์ ๋ํด์ GCD์ ํ์ฉ๋ฒ์ ๋ฐฐ์ ๋ค.
์ด๋ชจ์ง ๋ชจ์: ๐ค, โ โจ 0๏ธโฃ1๏ธโฃ2๏ธโฃ3๏ธโฃ4๏ธโฃ5๏ธโฃ6๏ธโฃ7๏ธโฃ8๏ธโฃ9๏ธโฃ๐