https://www.acmicpc.net/problem/6064
6064번: 카잉 달력
입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다.
www.acmicpc.net
살짝 어려웠다.
x의 값을 고정시켜놓는다는 아이디어가 중요하다.
x는 m%x이므로, x에 아무리 m을 더해도 x값은 같다.
x에 m을 계속 더하면서, x%n이 y%n(0일경우도대비)이 되는 x값을 구한다.
만일 x가 m*n보다 커진다면, 이는 무한루프이므로 -1을 출력한다.
##처음코드##
for _ in range(int(input())):
m,n,x,y=map(int,input().split())
pivot=x%m
if pivot==0:pivot=m
tmp=pivot
while True:
a=tmp%n
if not a: a=n
if a==y:
print(tmp)
break
tmp+=m
if tmp>(m*n):
print(-1)
break
##함수사용 깔끔 코드##
def kain(m,n,x,y):
while x<m*n:
if x%n==y%n :
print(x)
return
x+=m
print(-1)
return
for _ in range(int(input())):
m,n,x,y=map(int,input().split())
kain( m,n,x,y)
난웰케 머리가 나쁠까
'boj' 카테고리의 다른 글
| 백준 15666 N과 M (12) (0) | 2022.04.06 |
|---|---|
| 백준 15652 N과 M (4) (0) | 2022.04.06 |
| 백준 1260 DFS와BFS (0) | 2022.04.04 |
| 백준 2565 전깃줄 (0) | 2022.04.04 |
| 백준 11170 0의 개수 (0) | 2022.04.03 |