본문 바로가기
Python

본 캠프 Python 알고리즘 코드카타 2일차

by Data 학습자 2024. 6. 25.

오늘 풀어본 문제

https://school.programmers.co.kr/learn/courses/30/lessons/12950

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과를 구하는 함수를 작성하라고 한다 그럼 우선적으로 생각을 해봐야 한다.

행과 열을 더하기 위해선 우선 행이나 열 값을 먼저 찾아내고 그걸 기준삼아 열 값을 찾던지 행 값을 찾아야한다 우선적으로 행의 값부터 찾아보기로 했다.

def solution(arr1, arr2):
    answer = []

    for i in range(len(arr1)):
        row = []

우선 정답을 적어넣을 answer 리스트를 만들었고 그 다음 for문을 이용해서 행의 값을 찾는 반복문을 사용하였다.

i의 값은 range로 인해 점점 커지며 arr1에 있는 처음 숫자랑 값이 같아질때  IN 으로 인해 I의 값으로 그 숫자가 들어간다.

 

그럼 이렇게 행을 구하는 값을 넣었으니 이제 열을 구하는 for문을 작성해야한다.

def solution(arr1, arr2):
    answer = []

    for i in range(len(arr1)):
        row = []
        for j in range(len(arr1[0])):

 

이제 열을 구하는 값인데 열을 구하는 식은 arr1[0] 이란 값은 arr1의 첫번째 행을 지칭해 행을 가져와서 열의 갯수를 측정할 수 있게 도와주는 값이라고 한다. 근데 이게 어째서 열을 구하는 값이 된다는 것인지 차마 모르겠어서 내일 튜터님에게 물어볼 생각이다.

 

그럼 열을 구하는 식도 적었으니 각 행과 열을 더한 값을 answer에 추가할 일만 남았다.

def solution(arr1, arr2):
    answer = []

    for i in range(len(arr1)):
        row = []
        for j in range(len(arr1[0])):
            row.append(arr1[i][j] + arr2[i][j])
        answer.append(row)

    return answer

row.append (arr1[i][j] + arr2[i][j])

위 명령어를 이용하여 row = [ ] 값에 arr1과 2를 더한 값을 집어 넣고
answer.append(row) 
위 명령어를 사용하여 answer = [ ] 값에 row의 값을 추가로 넣어 정리를 한다.

return answer 마지막으로 answer 값을 출력하면 답이 나오게 된다.