오늘의 문제 _ 118. Pascal's Triangle(LeetCode)
줄이 늘어날 수록 숫자의 갯수는 1씩 증가하고 맨 처음 값과 맨 마지막 값은 각각 1이다.
나머지 값들은 윗줄의 (col -1) + 윗줄의 col 값 (col은 해당 숫자가 그 줄의 몇번째에 있는지를 나타냄)
나의 풀이
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> triangle = new ArrayList<>();
if(numRows == 0){
return triangle;
}
List<Integer> firstRow = new ArrayList<>();
firstRow.add(1);
triangle.add(firstRow);
for(int i=1; i<numRows; i++){
List<Integer> prevRow = triangle.get(i-1);
List<Integer> currentRow = new ArrayList<>();
currentRow.add(1);
for(int j=1; j<i; j++){
currentRow.add(prevRow.get(j-1) + prevRow.get(j));
}
currentRow.add(1);
triangle.add(currentRow);
}
return triangle;
}
}
나의 회고
삼각형의 각 행을 저장할 리스트를 만들어 준 후 numRows가 0인 경우 빈 삼각형을 반환했고,
첫번째 행은 항상 1로 시작하여 n번째 행까지 생성 → triangle.add(firstRow);
각 행의 첫번째 요소와 마지막 요소는 1이며 행의 중간 요소는 이전 행의 두 요소의 합으로 만들어줌
→ currentRow.add(prevRow.get(j-1) + prevRow.get(j));
마지막으로 완성된 행을 삼각형에 추가해주었다.
'TIL' 카테고리의 다른 글
TIL _ 탐욕법(Greedy) _ 0813 _ TUE (0) | 2024.08.13 |
---|---|
TIL _ 동적계획법 _ 0812 _ MON (0) | 2024.08.12 |
TIL _ 탐욕법(Greedy) _ 0810 _ SAT (0) | 2024.08.10 |
TIL _ 탐욕법(Greedy) _ 0809 _ FRI (0) | 2024.08.09 |
TIL _ 깊이/너비 우선 탐색(DFS/BFS) _ 0808 _ THU (0) | 2024.08.08 |