[MATLAB Cody] Problem 44950. Calculate Inner Product

young·2023년 7월 23일
0
post-thumbnail

MATLAB cody?

MATLAB 회사인 mathworks에서 제공하고 있는 매트랩 코딩 커뮤니티로,
매트랩 관련 코딩테스트 문제들을 제공하고 있다.
매스웍스 회사뿐만 아니라 사용자가 코딩 테스트 문제를 내고 다른 사람이 풀도록 할 수도 있다.
매트랩 코드가 익숙하지 않은 사람들에게 추천하는 사이트다.
매스웍스 계정이 있어야 이용 가능하며, 대부분 문제들이 무료다.
(아직 모든 문제를 본 것이 아니어서 정확하지 않음)

cody 사이트 : https://kr.mathworks.com/matlabcentral/cody/

Calculate Inner Product 문제

Given two input matrices, x and y, check if their inner dimensions match.
If they match, create an output variable z which contains the product of x and y.
Otherwise, z should contain a custom string message
Example:

x = [1 2;3 4]
y = [5;6]

z = [17;39]

x = [1 2 3;4 5 6]
y = [2 5;3 6]

z = "Have you checked the inner dimensions?"
OR
z = "The inner dimensions are 3 and 2. Matrix multiplication is not possible"


NOTE - An example of combining numbers and strings together is shown below:

x = "The sum of " + 4 + " and " + 3 + " equals " + 7
x = "The sum of 4 and 3 equals 7"

SOUTION

function z = in_prod(x,y)
  z = x;
end

문제 링크

Problem 44950. Calculate Inner Product

문제 해석

행렬 곱의 특성에 대해 이해하면 쉽게 풀 수 있는 문제이다.
앞 행렬의 column과 뒷 행렬의 row 수가 같아야 행렬의 곱셈을 수행할 수 있다는 특징을 이해하고, 이를 조건문으로 적용하면 쉽게 풀이가 가능하다.

풀이 코드

function z = in_prod(x,y)
	if length(x(1,:)) == length(y(:,1))
  		z = x * y;
	else
    	z = "Have you checked the inner dimensions?";
	end
end

문제 풀이

1. 행렬곱의 특징을 조건문으로 구현했다.
행렬의 곱셈은 앞 행렬의 column, 뒷 행렬의 row 수가 같아야 수행되므로 이를 length 함수로 구현했다.

2. 지정한 조건이 아닐 때 에러 문구를 산출하도록 구현했다.
문제에서 예시로 들어준 문장인 "Have you checked the inner dimensions?" 을 output으로 넣어주었다.

문제 풀이 회고

문제를 보는 순간, 내적과 외적을 본지 오래되어서 내적 특징이 기억이 나지 않아서 약간 당황했다. 행렬곱 개념만으로 풀 수 있는 문제여서 다행이었다.
size 함수보다 length 함수를 더 많이 쓰는 습관때문에 length로 풀이했는데, preferred solution을 보니 size 함수를 이용한 답안이 더 많았다. length 함수는 메모리를 더 잡아먹어서 잘 안써야 하는데, 습관을 고치기 위해 노력해야겠다.

profile
한 걸음씩 쌓아가는 데이터 분석

0개의 댓글