편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.06.21

    파이썬 행렬곱셈 함수 알고리즘 질문입니다.!


    프로그래머스 알고리즘 연습 level 2에 행렬의 곱셈 알고리즘 연습하는데 이해가 안되는 부분이 있어 질문드려요. 일단 제가 짠 코드는

       def productMatrix(A, B):
           answer = len(A)*[list(range(len(B[0])))]  #곱셈결과 행렬의 형태.
    
           for i in range(len(A)):         #A의 행,
               for j in range(len(B[0])):  #B의 열값을 갖게됨.
                   B_column_j=[]
                   for row in B:                   #B의 j열 만들기
                       B_column_j.append(row[j])
                   answer[i][j]=sum(A[i][k]*B_column_j[k] for k in range(len(A[i])))
                                #'(A의 i열)*(B의 j열)') dot product 
                   print('answer[{}][{}]={}'.format(i,j,answer[i][j]))
                   print(answer)
    return answer
    
    # 아래는 테스트로 출력해 보기 위한 코드입니다.
    a = [ [ 1, 2 ], [ 2, 3 ]];
    b = [[ 3, 4], [5, 6]];
    print("결과 : {}".format(productMatrix(a,b)));
    

    출력해보면, answer[0][0]=13
    [[13, 1], [13, 1]]
    answer[0][1]=16
    [[13, 16], [13, 16]]
    answer[1][0]=21
    [[21, 16], [21, 16]]
    answer[1][1]=26
    [[21, 26], [21, 26]]
    결과 : [[21, 26], [21, 26]]

    이렇게 나오는데 각각의 answer[i][j]값은 맞는데 왜 answer의 값이 저렇게 나오는지 모르겠네요.. 설명좀 부탁드립니다.

  • 프로필 박상우님의 편집
    날짜2017.11.14

    파이썬 행렬곱셈 함수 알고리즘 질문입니다.!


    프로그래머스 알고리즘 연습 level 2에 행렬의 곱셈 알고리즘 연습하는데 이해가 안되는 부분이 있어 질문드려요. 일단 제가 짠 코드는

       def productMatrix(A, B):
           answer = len(A)*[list(range(len(B[0])))]  #곱셈결과 행렬의 형태.
    
           for i in range(len(A)):         #A의 행,
               for j in range(len(B[0])):  #B의 열값을 갖게됨.
                   B_column_j=[]
                   for row in B:                   #B의 j열 만들기
                       B_column_j.append(row[j])
                   answer[i][j]=sum(A[i][k]*B_column_j[k] for k in range(len(A[i])))
                                #'(A의 i열)*(B의 j열)') dot product 
                   print('answer[{}][{}]={}'.format(i,j,answer[i][j]))
                   print(answer)
    return answer
    
    # 아래는 테스트로 출력해 보기 위한 코드입니다.
    a = [ [ 1, 2 ], [ 2, 3 ]];
    b = [[ 3, 4], [5, 6]];
    print("결과 : {}".format(productMatrix(a,b)));
    

    출력해보면, answer[0][0]=13
    [[13, 1], [13, 1]]
    answer[0][1]=16
    [[13, 16], [13, 16]]
    answer[1][0]=21
    [[21, 16], [21, 16]]
    answer[1][1]=26
    [[21, 26], [21, 26]]
    결과 : [[21, 26], [21, 26]]

    이렇게 나오는데 각각의 answer[i][j]값은 맞는데 왜 answer의 값이 저렇게 나오는지 모르겠네요.. 설명좀 부탁드립니다.