소스코드
T = int(input())
def sol(m,n,x,y):
while x <= m * n:
if (x - y) % n == 0:
return x
x += m
return -1
for _ in range (T):
data = list(map(int, input().split()))
print(sol(data[0],data[1],data[2],data[3]))
알고리즘
간단한 수식으로 적어보면
ma+x = nb + y = k 를 만족하는 k를 출력하는 것이다.
(k -x) = ma, (k-y) = nb 이므로
(k -x)/m와 (k-y)/n을 하면 나머지가 0이 된다.
따라서 k는 x에 m을 계속 더해주고 y를 뺀값에 n이 나누어 떨어진다면 된다.
한 챕터를 다 푸니깐 뿌듯하다.
'Coding test' 카테고리의 다른 글
[백준/11726/파이썬] 2×n 타일링 (0) | 2023.02.06 |
---|---|
[백준/1182/파이썬] 부분수열의 합 (0) | 2023.02.05 |
[백준/3085/파이썬] 사탕게임 - 브루트포스 (0) | 2023.01.27 |
[백준/1476/파이썬] 날짜계산 - 브루트포스 (0) | 2023.01.26 |
[백준/1339/파이썬] 단어수학 - 그리디 (0) | 2023.01.25 |