티스토리 뷰
반응형
https://programmers.co.kr/learn/courses/30/lessons/92343?language=python3
⊙ 문제
⊙ 제한사항
⊙ 입출력 예
⊙ 입출력 예 설명
⊙ 문제 접근 과정
백트래킹으로 풀자!
계속해서 양의 수와 늑대의 수를 비교!
같아지는 순간 return.
아니라면 다음 노드를 체킹 하면서 양 최댓값 갱신.
⊙ 문제 풀이
def solution(info, edges):
def nextNodes(v):
temp = list()
for e in edges:
# i는 부모노드, j는 자식노드
i, j = e
# 부모노드 번호 비교
if v == i:
temp.append(j)
return temp
def dfs(sheep, wolf, current, path):
# 지금 노드 확인, 양 늑대 판별
if info[current]:
wolf += 1
else:
sheep += 1
# 늑대가 다 잡아먹음, 무시
if sheep <= wolf:
return 0
# 아니라면 임시 변수에 값 갱신
maxSheep = sheep
# 서칭 시작
for p in path:
for n in nextNodes(p):
if n not in path:
path.append(n)
# 최대 양 판별
maxSheep = max(maxSheep, dfs(sheep, wolf, n, path))
path.pop()
return maxSheep
answer = dfs(0, 0, 0, [0])
return answer
⊙ 마무리
NONE
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'프로그래머스 > PYTHON [파이썬]' 카테고리의 다른 글
[프로그래머스] 코딩테스트 연습 : 모의고사 - PYTHON[파이썬] (1) | 2022.06.23 |
---|---|
[프로그래머스] 코딩테스트 연습 : 키패드 누르기 - PYTHON[파이썬] (2) | 2022.06.22 |
[프로그래머스] 코딩테스트 연습 : 피로도 - PYTHON[파이썬] (0) | 2021.11.07 |
[프로그래머스] 코딩테스트 연습 : 더 맵게 - PYTHON[파이썬] (0) | 2021.10.17 |
[프로그래머스] 코딩테스트 연습 : 단어 변환 - PYTHON[파이썬] (2) | 2021.10.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 답
- 자바스크립트
- 정렬
- CPP
- 프로그래머스
- 자바
- 쉽게 배우는 자바 프로그래밍
- 정리
- py
- 정답
- 우종정
- 해답
- 그리디
- 쉽게배우는자바프로그래밍
- 쉽게배우는
- 파이썬
- BFS
- OS
- 문자열
- 연습문제
- java
- 풀이
- 운영체제
- 구현
- JS
- 백준
- Python
- Web
- C++
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함