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 |
Tags
- DCTTS
- deep voice
- 노래합성
- 윈도우
- melgan
- 학습
- TTS
- you only look once
- 한국어 tts
- text-to-speech
- korean tts
- tacotron
- 한국어 음성 합성
- YOLO
- 딥러닝
- 타코트론
- 딥러닝 음성 합성
- Vocoder
- singing voice synthesis
- 보코더
- 트레이닝
- 음성 합성
- 딥러닝 보코더
- waveglow
Archives
- Today
- Total
chldkato
백준 14888 연산자 끼워넣기 (파이썬) 본문
https://www.acmicpc.net/problem/14888
14888번: 연산자 끼워넣기
첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다.
www.acmicpc.net
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