반응형
리뷰
D2 문제는 확실히 D1 문제보다는 어려워진 것 같다.
문제 풀이
- 출력 시 테스트 케이스의 순번 출력이 필요하므로 범위는 1, T + 1로 설정해 준다.
- A, B 배열의 길이를 고려하여 2중 for문을 통해 각 인자의 곱의 합을 temp 변수에 추가해 준다.
- 가장 큰 temp값을 result 변수에 저장 후 테스트 케이스 순번과 함께 출력해 준다.
참고 사항
- 문제에 배열 안에 들어올 수 있는 정수값의 범위가 정해져 있지 않다. result 변수를 초기화 할때 큰 음수 값으로 정해준다.
- A, B 배열의 길이가 같거나 서로 상이할 수 있기에 각 케이스 마다 처리 조건을 설정해 준다.
정답 코드
def q1959():
# SWEA 1959번 D2 두 개의 숫자열 파이썬
t = int(input())
for i in range(1, t + 1):
n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
result = -2 ** 31
for j in range(abs(n - m) + 1):
temp = 0
if n - m <= 0:
for k in range(n):
temp += a[k] * b[j + k]
else:
for k in range(m):
temp += a[j + k] * b[k]
result = max(result, temp)
print(f"#{i} {result}")
q1959()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
SWEA 12712번 D2 파리퇴치3 파이썬 (0) | 2024.06.26 |
---|---|
SWEA 1961번 D2 숫자 배열 회전 파이썬 (0) | 2024.06.26 |
SWEA 2063번 D1 중간값 찾기 파이썬 (0) | 2024.06.26 |
SWEA 2058번 D1 자릿수 더하기 파이썬 (0) | 2024.06.26 |
SWEA 1936번 D1 1대1 가위바위보 파이썬 (0) | 2024.06.26 |