일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- DP
- LeetCode #릿코드 #좋은 하루 되세요 #Have a nice day
- HAVE A GOOD DAY
- SSAFY 10기 화이팅
- SeongSeobDang
- I am Korean
- 수학
- Java 환경 설정
- SSAFY 테스트
- 우유가 옆으로 넘어지면 아야
- SSAFY 화이팅
- Have a nice day.
- Hamming weight
- SSAFY IM/A
- 자고 싶다
- 코로나 싫어요
- 텐션 업 10기!
- have a nice day
- Have a good day :)
- 텐션 업 10기 화이팅
- 모르고리즘
- 자료구조
- 우유가옆으로넘어지면아야
- amazon
- 우유아야
- DFS
- BFS
- 아자아자 화이팅
- 네트워크
- Today
- Total
Hope Everyone Is Happy
Pascal's Triangle (Java) 본문
Pascal's Triangle (Java)
J 크 2023. 7. 18. 22:59https://leetcode.com/explore/learn/card/array-and-string/202/introduction-to-2d-array/1170/
Explore - LeetCode
LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore.
leetcode.com
곧 매일 배운 내용을 정리하여 포스팅을 해보려고 합니다. 중꺾마.
해당 문제는 행의 갯수를 입력 받아 파스칼의 삼각형을 2차원 배열 형태로 구현을 요구하는 문제입니다.
In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:
(파스칼의 삼각형 Ref - https://namu.wiki/w/%ED%8C%8C%EC%8A%A4%EC%B9%BC%EC%9D%98%20%EC%82%BC%EA%B0%81%ED%98%95
파스칼의 삼각형 - 나무위키
이항계수를 삼각형 모양으로 나열한 것. 블레즈 파스칼이 13살 때 발견하여 이항계수를 구할 때 써먹었다. 삼각형을 그리는 규칙은 다음과 같다. 숫자가 들어갈 칸을 첫 번째 줄에는 1개, 두 번째
namu.wiki
)
Example 1:
Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
Example 2:
Input: numRows = 1
Output: [[1]]
코드 작성 전, 아래와 같이 솔루션을 정리하였습니다.
▶ 열의 갯수는 1부터 차례대로 증가.
▶ 열의 첫번째와 마지막은 항상 1
▶ 열의 나머지 값들은 이전 행(Row)의 현재 열(Col) 번호 -1 값 + 이전행의 현재 열 번호 값
ex) 3번째 행의 2번째 열값 = 2번쨰 행의 1번째 열값 + 2번째 행의 2번째 열값.
class Solution {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> narrResult = new ArrayList<>();
for(int i = 0; i < numRows; i++) {
List<Integer> narrTemp = new ArrayList<>();
for(int j = 0; j < i+1; j++) {
if(j == 0 || j == i)
narrTemp.add(1);
else
narrTemp.add(narrResult.get(i-1).get(j-1) + narrResult.get(i-1).get(j));
}
narrResult.add(narrTemp);
}
return narrResult;
}
}
해당 문제는 크게 어렵지 않았지만 ArrayList의 clear 기능을 C++ vector 에서의 clear 기능과 똑같다고 생각을 해서 사용을 했다가 1차원 배열값만 입력됬다 지워지는 오류가 발생하였습니다. Java 언어의 특징 답게 ArrayList에서의 clear는 C++ 자료형들과 다르게 주소값까지 지워지지는 않는 것 같습니다. 문제를 풀다 보니 생각보다 C++이 편한 점도 많은 것 같네요.
긴 글 읽어주셔서 감사합니다!
Good Luck! (피드백 고맙습니다)
'※ 릿코드 ( LeetCode ) > [Java] 문제 풀이 ( Solve the problems)' 카테고리의 다른 글
[Medium] 366. Find Leaves of Binary Tree (Java) (0) | 2023.12.04 |
---|---|
[Easy] 191. Number of 1Bits (Java) (0) | 2023.11.29 |
[Hard] 329. Longest Increasing Path in a Matrix (Java) (0) | 2023.11.28 |
[Medium] 253. Meeting Rooms II (Java) (0) | 2023.11.27 |
Diagonal Traverse (Java) (0) | 2023.07.17 |