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
- YOLO
- text-to-speech
- korean tts
- 노래합성
- tacotron
- 한국어 tts
- 타코트론
- 딥러닝 보코더
- 보코더
- TTS
- singing voice synthesis
- DCTTS
- 윈도우
- Vocoder
- 음성 합성
- 학습
- 딥러닝 음성 합성
- melgan
- you only look once
- deep voice
- waveglow
- 딥러닝
- 트레이닝
- 한국어 음성 합성
Archives
- Today
- Total
chldkato
백준 14888 연산자 끼워넣기 (파이썬) 본문
https://www.acmicpc.net/problem/14888
1. 리스트 a에 입력받은 숫자를 저장하고 리스트 func에 연산자의 개수를 저장한다
2. dfs 순열로 끼워넣을 연산자를 q에 저장한다
3. select는 선택한 연산자의 개수를 저장한다. 해당 인덱스에서 select와 func가 같으면 다음 연산자로 넘어간다
4. 순열을 만들었으면 res에 연산한 결과를 저장한다
5. max_ans와 min_ans에 결과의 최대값과 최소값을 저장한다
from collections import deque
import sys
input = sys.stdin.readline
def dfs(cnt):
global max_ans, min_ans
if cnt == n-1:
res = a[0]
for i in range(n-1):
if q[i] == 0:
res += a[i+1]
elif q[i] == 1:
res -= a[i+1]
elif q[i] == 2:
res *= a[i+1]
else:
res = int(res / a[i+1])
max_ans = max(max_ans, res)
min_ans = min(min_ans, res)
for i in range(4):
if select[i] == func[i]:
continue
select[i] += 1
q.append(i)
dfs(cnt+1)
select[i] -= 1
q.pop()
n = int(input())
a = list(map(int, input().split()))
func = list(map(int, input().split()))
select, q = [0 for _ in range(4)], deque()
max_ans, min_ans = -sys.maxsize, sys.maxsize
dfs(0)
print(max_ans)
print(min_ans)
'백준' 카테고리의 다른 글
백준 14501 퇴사 (파이썬) (0) | 2020.04.18 |
---|---|
백준 14503 로봇 청소기 (파이썬) (0) | 2020.04.17 |
백준 14889 스타트와 링크 (파이썬) (0) | 2020.04.17 |
백준 14890 경사로 (파이썬) (0) | 2020.04.16 |
백준 14891 톱니바퀴 (파이썬) (0) | 2020.04.16 |
Comments