-
16987 dfs, 백트레킹 ==> 다시풀어보기코테 대비 python/백준 2023. 1. 27. 16:42
https://www.acmicpc.net/problem/16987
16987번: 계란으로 계란치기
원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱
www.acmicpc.net
import sys input = sys.stdin.readline #visited = [] #for _ in range(N): # visited.append(0) #visited = [0 for _ in range(N)] #print(visited) def check(eggs): cnt=0 for egg in eggs: if egg[0] <=0: cnt+=1 return cnt def dfs(idx, eggs): global result if idx ==N: result = max(result,check(eggs)) return if eggs[idx][0] <= 0: dfs(idx+1,eggs) else: all_broken = True for i in range(len(eggs)): if idx != i and eggs[i][0]>0: all_broken = False eggs[idx][0] -=eggs[i][-1] eggs[i][0] -= eggs[idx][-1] dfs(idx +1,eggs) eggs[idx][0] +=eggs[i][-1] eggs[i][0] += eggs[idx][-1] if all_broken: dfs(N,eggs) N = int(input()) eggs=[list(map(int,input().split())) for _ in range(N)] result=0 dfs(0,eggs) print(result)
구글링의 도움을 받음
다시풀어보자
'코테 대비 python > 백준' 카테고리의 다른 글
21315 완전탐색 블루트포스 ==> 다시풀기 (0) 2023.01.27 21278 bfs ==> 다시 풀어보기 (0) 2023.01.27 1969 문자열, 구현 (0) 2023.01.27 16174 dfs, bfs (0) 2023.01.26 2167 구현, 누적합, DP (0) 2023.01.26