더보기
준비운동 PART2. 약점 체크
문제풀이를 쭉쭉하기 전, 기본 알고리즘을 잘 습득했는지 점검할 수 있는 문제를 소개합니다. 뼈대 문제는 시간을 두고 반복 구현하여 손에 익혀서 응용문제가 나왔을 때 유연하게 대처할 수 있는 생각을 길러야 합니다.
14888번: 연산자 끼워넣기 (실버 1티어)
n = int(input())
operands = list(map(int, input().split()))
operator = list(map(int, input().split()))
operators = (operator[0] * ['+']) + (operator[1] * ['-']) + (operator[2] * ['*']) + (operator[3] * ['//'])
# 순열 만들기
from itertools import permutations
operatorList = list(set(permutations(operators, len(operators)))) # set 안하면 시간 초과
resultList = []
# 계산하기
for operator in operatorList: # [+, +, -, //, *]
temp = operands[0]
for i in range(n - 1):
if operator[i] == '+':
temp = temp + operands[i + 1]
elif operator[i] == '-':
temp = temp - operands[i + 1]
elif operator[i] == '*':
temp = temp * operands[i + 1]
elif operator[i] == '//':
if temp < 0:
temp = -(-(temp) // operands[i + 1])
else:
temp = temp // operands[i + 1]
resultList.append(temp)
print(max(resultList))
print(min(resultList))
'Coding Test > 문제 풀이' 카테고리의 다른 글
[Algorithm] 문자열 압축 (0) | 2022.01.21 |
---|---|
[Algorithm] 빗물 (백준 14719) (0) | 2022.01.19 |
[Algorithm] 준비운동 PART 1. 튼튼한 기본기 (2) (0) | 2022.01.10 |
[Algorithm] 준비운동 PART 1. 튼튼한 기본기 (1) (0) | 2022.01.10 |
[Algorithm] 뱀 (백준 3190) (0) | 2022.01.05 |