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
- 스프링 웹플럭스
- git stage
- spring reactive programming
- JSON 분리
- 스프링 배치 공식문서
- str_to_date
- 마이바티스 트랜잭션
- 무시하기
- JobExecutionAlreadyRunningException
- jar 소스보기
- ChainedTransactionManager #분산데이터베이스 #Spring Boot #MyBatis
- JSONObject 분할
- 마리아디비
- Meta Table
- multi update
- 문자형을 날짜형으로
- date_format
- 스프링 리액티브 프로그래밍
- org.json
- 날짜형을 문자형으로
- 스테이지에 올리기
- spring webflux
- JSON 분할
- 폐기하기
- JSON 분해
- nonblocking
- 성능개선
- 스프링 배치 메타 테이블
- batchInsert
- JSONArray 분할
Archives
- Today
- Total
ebson
boj.kr/14888 연산자 끼워넣기 (silver1) 파이썬 풀이 본문
ALGORITHM STUDY WITH PYTHON/Bruteforce
boj.kr/14888 연산자 끼워넣기 (silver1) 파이썬 풀이
ebson 2023. 4. 20. 12:341. nums에 순서대로 숫자들을 저장
2. +, -, *, / 연산자를 개수만큼 qs 배열에 저장
3. 문제 조건에 맞게 divide 함수를 정의
4. permutations를 사용해 가능한 모든 연산자들의 순열에 대해 아래를 반복
4.1. ans에 nums[0]을 저장
4.2. 연산자들의 순열을 순회하면서 +, -, *, divide 연산을 수행한 결과를 ans으로 갱신
4.3. ans와 min_ans, max_ans를 각각 최소, 최대 비교해 min_ans, max_ans를 갱신
5. max_ans를 출력하고 다음줄에 min_ans를 출력
N = int(input())
nums = list(map(int, input().split()))
ops = list(map(int, input().split()))
qs = '+' * ops[0] + '-' * ops[1] + '*' * ops[2] + '/' * ops[3]
def divide(a, b):
if a < 0 and b > 0:
return -1 * (abs(a) // b)
return a // b
from itertools import permutations
max_ans = -int(1e9)
min_ans = int(1e9)
for permu in permutations(qs, N - 1):
ans = nums[0]
for i in range(N - 1):
if permu[i] == '+':
ans += nums[i + 1]
elif permu[i] == '-':
ans -= nums[i + 1]
elif permu[i] == '*':
ans *= nums[i + 1]
elif permu[i] == '/':
ans = divide(ans, nums[i + 1])
max_ans = max(max_ans, ans)
min_ans = min(min_ans, ans)
print(max_ans)
print(min_ans)
max(n1, n2), min(n1, n2) 함수의 인자로는 int 형만 사용할 수 있다. 그래서 max = -1e9 min = 1e9와 같이 초기화하면 오답이 되고 max = -int(1e9) min = int(1e9)와 같이 초기화 해두어야 정답으로 체점된다.
'ALGORITHM STUDY WITH PYTHON > Bruteforce' 카테고리의 다른 글
boj.kr/1080 체스판 다시 칠하기 (silver4) 자바 풀이 (0) | 2024.06.01 |
---|---|
boj.kr/1080 체스판 다시 칠하기 (silver4) 파이썬 풀이 (0) | 2024.05.25 |
boj.kr/15686 치킨 배달 (gold5) 파이썬 풀이 (0) | 2023.04.22 |
boj.kr/2468 안전 영역 (silver1) 파이썬 풀이 (0) | 2023.04.21 |
boj.kr/14889 스타트와 링크 (silver2) 파이썬 풀이 (0) | 2023.04.20 |
Comments