목록백트래킹 (2)
justsicklife
일단은 백트래킹으로 풀어야한다 왜냐하면 모든 위치를 탐색해야 하기 때문이다. 3개의 장애물을 설치해야한다 막혔던 부분 백트래킹으로 X로 비어있는곳에 3개의 O를 넣는건 했다. 하지만 어떻게 구현의 해야 선생님의 위치에서 학생의 감시를 피할수있는것을 구현 하지 못했다. 30분 고민끝에 그냥 답을 보기로 했다. N = int(input()) board = [list(input().split()) for i in range(N)] arr = [] def fun(): for y,x in arr: for i in range(0,N): if board[y][i] == "T" or board[i][x] == "T": return False return True def dfs(y,x,c): if c == 3: if f..
유형은 백트래킹 N = int(input()) arr = list(map(int,(input().split()))) result = 0 def dfs(v,c): global result # 배열이 두칸남았을 경우 # 맨왼쪽 오른쪽은 지울수없으므로 이렇게한다 if N-2 == c: result = max(result,v) return for i in range(1,len(arr) - 1): # 지울 인덱스 번호 양옆을 곱을 구한다. value = arr[i-1] * arr[i+1] # 삭제한값을 다시 복구 하기위해 변수로 선언한다 rollback = arr[i] # i번째에 있는 요소를 삭제한다. del arr[i] dfs(value+v,c+1) # 삭제한 요소를 다시 복구한다. arr.insert(i,r..