๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/18512
์ฒ์์๋ ๊ท์น์ฑ์ ์ฐพ์์ ์์ธ์ผ๋ -1์ ์ถ๋ ฅํ๋๋ก ์๋ํ๋๋ฐ, ๊ทธ๋ฅ 1000ํ ๊ณ์ฐํด๋ณด๊ณ ๊ฐ์์ง์ ์ ์ง๋์ง ์๋๋ค๋ฉด
-1์ ์ถ๋ ฅํ๋๋ก ํ๋ค.
*ํ์ด์ฌ ์ฝ๋
x, y , p1, p2 = map(int,input().split())
x_path = [p1] ; y_path=[p2] ; answer = -1 ; cnt = 1
while (True):
p1+=x
p2+=y
x_path.append(p1) ; y_path.append(p2)
if p1 in y_path or p2 in x_path:
answer= min(p1,p2)
break
elif cnt > 1000 :
break
cnt+=1
print(answer)
*๋ค๋ฅธ์ฌ๋ ์ฝ๋
x,y,p1,p2 = map(int,input().split())
runx = set(range(p1, 10**6, x))
runy = set(range(p2, 10**6, y))
print(10**6)
R = runx&runy
print(min(R) if R else -1)
๋ค๋ฅธ์ฌ๋์ ์ด๋ป๊ฒ ํ๋ ๊ถ๊ธํ๋๋ฐ, ์ด๋ถ๋ 10*6ํ๋งํผ ์ฐ์ฐํ set์์ ๊ฒน์น๋ ๋ถ๋ถ์ด ์๋ ์ฐพ๊ณ , ์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋
ํ์์ด์๋ค. ๋ ์ฐพ์๋ณด๊ณ ์ถ์๋๋ฐ, ๋ฐฉ๊ธ ์ฌ๋ผ์จ ๋ฌธ์ ๋ผ ์ฝ๋๊ฐ ๋ง์ด ์์๋ค.