티스토리 뷰
https://www.acmicpc.net/problem/12869
n = int(input())
a = list(map(int,input().split()))
scv = [0]*3
for i in range(n):
scv[i] = a[i]
result=1e9
def dfs(x,cnt):
global result
# 체력순으로 정렬
x.sort()
if x[0]<=0 and x[1]<=0 and x[2]<=0:
result = min(cnt,result)
return True
else:
#상황에 따라서 2번째 3번째 공격해야하는 scv고려
dfs([x[0]-1,x[1]-3,x[2]-9],cnt+1)
dfs([x[0]-3,x[1]-1,x[2]-9],cnt+1)
dfs(scv,0)
print(result)
DFS 탐색을 통한 풀이
첫번 째 공격 대상은 가장 체력이 많은 scv,
상황에 따라서 2번째 3번째 공격 해야 하는 scv 고려해줘야 함
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 그리디 알고리즘
- 다이나믹 프로그래밍
- til
- dictionary
- React quill
- 프론트엔드
- SEB 43기
- BFS
- 백준
- 개인 프로젝트
- SEB43
- 프로그래머스
- 브루드포스
- seb
- SEB43기
- 감정일기장
- 코테
- 기술면접
- 코드스테이츠
- dfs
- 회고
- useContext
- 프리프로젝트
- 프로젝트
- 인적성
- SEB 43
- Python
- Redux
- 스택오버플로우
- 감정 일기장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함