본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 118. Pascal's Triangle

반응형

https://leetcode.com/problems/pascals-triangle/

 

Pascal's Triangle - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

📕 풀이방법

📔 풀이과정

만들어야 할 행의 개수는 numRows만큼, 매 행마다 만들어야할 열의 개수는 각 행번째만큼입니다.이차원 for loop를 수행해 각 행에 필요한 vector tmp에 원소를 구해 저장해줍니다.

 

1. pascal 삼각형은 i행과 j 열이 같은 값이거나 j열인 경우 1의 값을 가집니다. 이 경우에 tmp에 1을 push_back해줍니다.

2. 다른 경우에는 (i행, j열) 값 = (i-1, j-1) + (i-1, j) 의 규칙을 가지므로 해당 값을 ans로부터 구해 tmp에 push_back해줍니다.

3. 구한 하나의 행인 tmp를 ans에 push_back해줍니다.

📔 정답출력

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> ans;
        for(int i = 0; i < numRows; i++){
            vector<int> tmp;
            for(int j = 0; j <= i; j++){
                if(j == 0 || i == j) {
                    tmp.push_back(1);
                    continue;
                }
                else tmp.push_back(ans[i-1][j-1] + ans[i-1][j]);
            }
            ans.push_back(tmp);
        }
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.