250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- eager
- fetch
- 이진탐색
- 다대일
- 지연로딩
- querydsl
- 다대다
- 데코레이터
- 연결리스트
- execute
- FetchType
- dfs
- SQL프로그래밍
- 유니크제약조건
- 낙관적락
- 연관관계
- 백트래킹
- 일대다
- BOJ
- PS
- CHECK OPTION
- 스프링 폼
- 동적sql
- 힙
- 스토어드 프로시저
- JPQL
- 비관적락
- 즉시로딩
- shared lock
- exclusive lock
Archives
- Today
- Total
흰 스타렉스에서 내가 내리지
[BOJ] (DFS) 15658번 연산자 끼워넣기 (2) 본문
728x90
permutation을 이용해 brute force로 처음에 접근을 했는데, 시간초과가 났다.
dfs로 풀면 시간초과를 피할 수 있다.
n = int(input())
arr = list(map(int, input().split()))
oper = list(map(int, input().split()))
maxval, minval = -1e9, 1e9
def solve(index, val, add, sub, mul, div):
global maxval, minval
if index == n:
maxval = max(maxval, val)
minval = min(minval, val)
return
if add:
solve(index+1, val+arr[index], add-1, sub, mul, div)
if sub:
solve(index+1, val-arr[index], add, sub-1, mul, div)
if mul:
solve(index+1, val*arr[index], add, sub, mul-1, div)
if div:
solve(index+1, int(val/arr[index]), add, sub, mul, div-1)
solve(1, arr[0], *oper)
print(maxval)
print(minval)
https://www.acmicpc.net/problem/15658
'Problem Solving' 카테고리의 다른 글
[BOJ] (DP) 2156번 포도주 시식 (0) | 2022.03.06 |
---|---|
[BOJ] (DP, BFS) 13549번 숨바꼭질3 ?? (0) | 2022.03.02 |
[BOJ] (BFS)7576번 토마토 (0) | 2022.02.25 |
[BOJ] (GRAPH) 1707번 이분 그래프 (0) | 2022.02.19 |
[BOJ] (DP) 1149번 RGB거리 (0) | 2022.02.17 |