SWEA 1959. 두 개의 숫자열

JeanDeluge·2023년 3월 12일

SWEA

목록 보기
8/8

풀이과정

  1. 서로 크기가 다르거나 같은 배열, 하나는 3 크기, 하나는 5 크기라고 했을때, 서로 마주보는 위치의 숫자를 곱하는 방법은 다음과 같다.

  2. 총 3번의 연산이 이루어지는데,
    1) 3크기 배열의 첫 원소와, 5크기 배열의 첫 원소 부터 매칭하여 연산
    2) 3크기의 배열 첫 원소와, 5크기 배열의 두 번째 원소
    3) 3크기의 배열 첫 원소와, 5크기의 배열 세 번재 원소를 매칭하면 된다.

  3. 결론은 매칭 횟수는 5-3+1 가 되고,
    매칭하는 원소끼리는 한 번 매칭될때마다
    긴 배열쪽의 시작원소는 하나씩 커진다.

 a_len, b_len   = map(int, input().split())
    a_arr = list(map(int, input().split()))
    b_arr = list(map(int, input().split()))
    
    longer = []
    shorter = []
    
    if a_len >= b_len:
        longer = a_arr
        shorter =b_arr
    else:
        longer = b_arr
        shorter = a_arr
      
    total_arr = []
    for i in range(len(longer)- len(shorter)+1):
        total = 0
       	for j in range(len(shorter)):
           	total += shorter[j] * longer[i+j]
        total_arr.append(total)

리뷰

25분 걸렸다.
예저에 이런 비슷한 문제를 푼적이 있는 것 같아서 빨리 풀 수 있었던 것 같다.

0개의 댓글