예전에 푼 문제를 다시 풀어봤는데, 예전에도 슬라이싱, 이번에도 슬라이싱 사용해서 풀더라ㅋㅋㅋㅋㅋ
내장 함수를 최대한 사용하지 않으려 노력해봣당. 버블 소트도 다시 써봤는데, 그냥 minmax 두고 풀어도 되겠당.
1월 29일의 풀이
T = int(input())
for tc in range(1, T+1):
N, M = map(int, input().split())
nums = list(map(int, input().split()))
nums_sum = []
# M만큼 구간을 잘라서 합의 리스트(nums_sum)를 구해라.
for i in range(0, N-M+1):
nums_sum.append(sum(nums[i:i+M]))
# 합의 리스트(nums_sum)의 max와 min을 찾아서 max-min을 구해라.
print('#{} {}'.format(tc, max(nums_sum)-min(nums_sum)))
3월 9일의 풀이
T = int(input())
for tc in range(1, T+1):
n, m = map(int, input().split())
nums = list(map(int, input().split()))
# 구간합들을 담을 변수 result
result =[]
for i in range(n-m+1):
summ = 0
for j in range(m):
summ += nums[i+j]
result.append(summ)
# 버블 정렬
for _ in range(len(result)-1):
for i in range(len(result)-1):
if result[i] > result[i+1]:
result[i], result[i+1] = result[i+1], result[i]
print('#{} {}'.format(tc, result[-1]-result[0]))
- 입력 조건에 맞춰
min, max = 1000000, 1
로 두고 매번 summ을 비교해가면서 풀어도 된다.
'Algorithm problem solving > 풀이' 카테고리의 다른 글
4836. 색칠하기 (0) | 2020.03.11 |
---|---|
1959. 두개의 숫자열 (0) | 2020.03.09 |
4828. min max (0) | 2020.03.09 |
2798. 블랙잭_fail(3/4)_pass(4/10)_pythonic(22/2/6) (0) | 2020.03.04 |
[SW Expert Academy] 파이썬 기초2_객체지향 ( 6203~ 6229 ) (0) | 2020.03.01 |