많이 틀리고 있다.
(정확히는 타임아웃을 많이 당하고 있다).
내가 짠 코드는 아래와 같다.
import sys
import math
input = sys.stdin.readline
N, M = map(int,input().split())
L = math.lcm(2*N-2,2*M-2)
#순서에 대한 function 정의#
def f(n):
if N == 1:
return 1
else:
j = i % (2*N - 2)
if j in range (1,N):
return j
if j in range (N,2*N-1):
return 2*N - j
if j == 0:
return 2
def g(n):
if M == 1:
return 1
else:
j = i % (2*M - 2)
if j in range (1,M):
return j
if j in range (M,2*M-1):
return 2*M - j
if j == 0:
return 2
result = []
for i in range (1,int(L/2)+2):
b_1 = f(i)
b_2 = g(i)
a = [b_1,b_2]
if a in result:
continue
else:
result.append(a)
n = len(result)
print(n)
사실상 f(n)과 g(n)의 모양은 동일한 것을 알 수 있고,
구간을 나누어 규칙성을 찾아보려고하는데,
뭔가 잘 되지 않는다 !
어떻게 하면 계산시간을 더 단축시킬 수 있을지 생각해봐야겠다.
잘 생각해보면 쉽게 나올 것 같기도한데.
소중한 정보 잘 봤습니다!