모각코

2020/07/08 모각코 2회차 결과

죽림인 2020. 7. 8. 23:54

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

 

16987번: 계란으로 계란치기

원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱

www.acmicpc.net

1.위 문제를 풀었다.

백트래킹을 하는 문제였는데 처음에 문제를 잘못 이해하여서 실수를 하여 시간을 많이 허비하였다.

import sys
from collections import deque
read = lambda : sys.stdin.readline().strip()
import copy
import collections

def dfs(number):
    global answer
    if number>=n:
        result = 0
        for i in range(n):
            if mat[i][0]<=0:
                result+=1
        answer = max(answer,result)
        return
    elif mat[number][0]<=0:
        dfs(number+1)
    else:
        flag = 0
        for i in range(n):
            if i==number or mat[i][0]<=0:
                continue
            mat[number][0] -=mat[i][1]
            mat[i][0] -=mat[number][1]
            flag = 1
            dfs(number+1)
            mat[number][0]+=mat[i][1]
            mat[i][0] +=mat[number][1]
        if flag==0:
            dfs(n)




answer = 0
n = int(read())
mat = []
for _ in range(n):
    mat.append(list(map(int,read().split())))

dfs(0)
print(answer)

2. 프로젝트를 위한 데이터셋을 찾아보았다.

일반적인 사람 데이터셋은 조금 많았지만 우리가 원하는 특정 동작의 데이터셋은 없는것 같았다.

하나하나씩 찾아서 라벨링 해야될듯하다..