본문 바로가기

phython

2785: 체인

1. print 를 재귀함수 위에 넣느냐 아래 넣느냐에 따라 다르다. 

이유는 재귀함수가 스택을 활용하기 때문에. 

def DFS(x):

if x > 0 :

print (x, end=' ') // 4,3,2,1

DFS(x0-1)

print (x, end=' ') // 1,2,3,4

if __name__ =="__main__":

n=int(input())

DFS(n)

 

 

https://www.acmicpc.net/problem/2785

 

2785번: 체인

희원이는 그의 다락방에서 N개의 체인을 찾았다. 각각의 체인은 몇 개의 고리로 연결되어 있는데, 각각의 고리는 최대 두 개의 인접한 고리를 가질 수 있다. 각각의 고리는 열고 닫을 수 있다. 그

www.acmicpc.net

 

문제 풀이: 

N = eval(input())
m = list(map(int, input().split()))
m.sort()

cnt = 1 # 연결된 고리 개수
idx = 0 # 현재 고리를 빼야할 고리인덱스

while(1):
    cnt += 1
    m[idx] -= 1
    if(m[idx] == 0):
        idx += 1
    if(idx + cnt >= N):
        break

print(cnt-1)

 

반응형