본문 바로가기

알고리즘/Python

가희와 서울 지하철 3호선_백준27884

ttps://www.acmicpc.net/problem/27884

 

27884번: 가희와 서울 지하철 3호선

가희는 지하철을 타고 가다가 지상역과 지하역이 번갈아 나오는 롤러코스터 구간을 발견하였습니다. 롤러코스터 구간에 대한 정의는 아래와 같습니다. 길이가 1인 구간은 롤러코스터 구간입니

www.acmicpc.net

a = [[0 for j in range(2)] for i in range(21)]
n, m = map(int,input().split())
for i in range(n):
    a[i][0] = input()
sum = 0
def na(li,n):
    w = 1
    for i in range(n):
        if li[i][1] == 1:
            w *= 5
        else:
            w*=11
    return w

def sw(x,y,z,cnt,max):
    global n
    global a
    global sum
    if x != 0:
        a[n-x][1] = z
    if (a[n - x][1] == 1 and a[n - 1 - x][1]==-1) or (a[n - x][1] == -1 and a[n - 1 - x][1]==1) :
        cnt += 1
        if cnt > max:
            max = cnt
    else:
        cnt = 1

    if cnt > y:
        cnt -= 1
        return
    if x == 1 and max == y:
        sum += na(a,n)
        return
    elif x == 0:
        return
    
    
    sw(x-1,y,1,cnt,max)
    sw(x-1,y,-1,cnt,max)

if n == 1:
    print(16)
else:
    sw(n,m,1,1,1)
    sw(n,m,-1,1,1)
    print(sum%1000000007)

 

'알고리즘 > Python' 카테고리의 다른 글

행복 유치원_백준 13164_파이썬  (0) 2023.11.08
IQ Test_백준1111  (0) 2023.09.04
그리디 알고리즘_정올3521  (0) 2023.04.04