백준 9497, 13435 피라미드 수열 고찰 (Python)

Joowan Park·2023년 7월 20일
0

코딩

목록 보기
3/28

많이 틀리고 있다.
(정확히는 타임아웃을 많이 당하고 있다).

내가 짠 코드는 아래와 같다.

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)의 모양은 동일한 것을 알 수 있고,
구간을 나누어 규칙성을 찾아보려고하는데,
뭔가 잘 되지 않는다 !

어떻게 하면 계산시간을 더 단축시킬 수 있을지 생각해봐야겠다.
잘 생각해보면 쉽게 나올 것 같기도한데.

profile
Complex Dynamics에서 탈출한 원숭이

2개의 댓글

comment-user-thumbnail
2023년 7월 20일

소중한 정보 잘 봤습니다!

1개의 답글