[Programmers/Python] Level 3: 양과 늑대
문제: 양과 늑대
문제: 양과 늑대

풀이
def solution(info, edges):
answer = 0
'''
늑대>=양 -> 양 몰살
최대한 많은 양 모아서 다시 루트노드로 돌아오기
info: 그래프
edges: 노드간의 연결관계
1. edge리스트 graph로 만들기 -> info에서 각 node 확인해서 count
2. DFS로 늑대, 양 개수 count하면서 경우의 수 탐색
3. 양 최댓값 return
'''
# 인접 리스트로 그래프 생성
graph = [[] for _ in range(len(info))]
for i in range(len(edges)):
graph[edges[i][0]].append(edges[i][1])
# print(graph)
max_ = 0
def DFS(sheep, wolf, node):
nonlocal max_
#max 갱신
if sheep > max_:
max_ = sheep
for n in node:
next_node = [k for k in node if k != n] + graph[n]
# 다음 노드가 양일때
if info[n] == 0:
DFS(sheep + 1, wolf, next_node)
else: #다음노드가 늑대일때
if sheep > wolf +1: #늑대 1추가해도 양보다 더 적을때만 탐색
DFS(sheep, wolf +1, next_node)
DFS(1,0,graph[0])
return max_
배울점
- 인접리스트로 그래프 만든다음에 DFS로 탐색하는 문제
- 전형적인 그래프 탐색문제긴 했는데, 양숫자랑, 늑대 숫자를 DFS로 넘겨줘서 제한조건을 걸어줘야 하는 문제였음
next_node로 다음에 탐색해야 하는node는 자신을 제외한 이번 DFS의 node와 자신과 연결된 node인graph[n]임.
Continue exploring
더 읽어보기
CTR을 예측할 수 있을리가 없잖아 무리무리!(무리가아니었다!?): nemotron persona
어떤 광고 배너가 잘될지는 결국 집행 비용을 써봐야 알 수 있었다. 배너를 많이 만들 수 있어도, 그중 무엇을 내보낼지 고르는 데는 여전히 돈이 들었다. 집행 전에 후보를 걸러낼 수 있을지 확인하려고 NVIDIA Nemotron Persona-Korea 데이터셋으...
카피 A/B 테스트와 밈으로 광고 성과를 끌어올리기
광고 배너를 자동으로 만들 수 있게 된 뒤에는 어떤 카피를 얹을지가 다음 과제였다. 성과가 높은 카피, 재밌는 카피에는 정해진 Ground Truth가 없었다. 여러 톤앤매너와 밈 RAG로 후보를 만들고 실제 광고 성과를 비교했다.
성과가 난 광고에서 다음 스토리를 찾는 위닝앵글 검색
초기 AX 제작은 좋아요 랭킹 순으로 스토리를 넓게 탐색하는 방식이었다. 이후에는 이미 성과가 난 광고에서 다음 후보를 찾는 경로를 만들었다. 다른 팀원이 만든 에이전트의 광고 성과 분석과 인사이트를 받아, 비슷한 소구점이나 이미지를 가진 새로운 스토리를 발굴하는...