old/Algorithm

11주차 뭘풀까?

hYhY1234 2020. 8. 28. 23:41
728x90

이번주

이번주는 면접 등으로 정신이 없어서 못풀었다. 하지만 다시 시작해보려고 합니다~~

9월 5일부터는 고난이도 문제로 다시 돌아가려고 한다. 이제 레벨 2 푸는건 여기까지

 

 

 

 

1. 피보나치수

아 기초 문제

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    int dv = 1234567;
    vector<int> d(n+1, 0);
    d[0] = 0;
    d[1] = 1;
    
    for(int i = 2; i <= n; i++){
        d[i] = (d[i-1] + d[i-2]) % dv;
    }

    answer = d[n] % dv;
        
    return answer;
}

 

 

 

2. 아 행렬의 곱셈

 

#include <string>
#include <vector>
#include <iostream>
using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr1, vector<vector<int>> arr2) {
    int w1 = arr1[0].size();
    int h1 = arr1.size();
    
    int w2 = arr2[0].size();
    int h2 = arr2.size();
    
    // cout << w1 << ", " << h1 << ", " << w2 << ", " << h2 << "\n";
    vector<vector<int>> answer(h1, vector<int> (w2, 0));
    
    for(int i = 0; i < h1; i++){
        for(int j = 0; j < w2; j++){
            int va = 0;
            int index = 0;
            while(index < w1){
                // cout << arr1[i][index] << ", " << arr2[index][j] << "\n";
                va += (arr1[i][index] * arr2[index][j]);
                index++;
            }
            answer[i][j] = va;
        }
    }
    return answer;
}

행렬이 잘 기억이 안나는 나이라 어려웠다.