본문 바로가기

Coding test

[백준/6064/파이썬] 카잉 달력


소스코드

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이 나누어 떨어진다면 된다.

한 챕터를 다 푸니깐 뿌듯하다.