lala9663
Bump into
lala9663
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (1)
    • Java (39)
    • Spring (28)
    • IntelliJ (7)
    • Git,Github (2)
    • CS (22)
    • Algorithm (23)
      • Algorithm 문제 (13)
    • 공부방 (9)
    • 그 외 (27)
      • TIL (24)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Post
  • 동적
  • 자바 람다
  • Java
  • 백준 벌집
  • Spring
  • Intellij
  • 웹서버
  • was
  • 스트림(Stream)
  • thread
  • 백준 2292
  • jsp
  • Get
  • 백준
  • Til
  • try-catch
  • servlet
  • 1193
  • 정적
  • 웹 3.0
  • 자바

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
lala9663

Bump into

Algorithm/Algorithm 문제

[Leetcode] 118 Pascal's Triangle [Java]

2023. 8. 20. 16:19

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

 

Pascal's Triangle - LeetCode

Can you solve this real interview question? Pascal's Triangle - Given an integer numRows, return the first numRows of Pascal's triangle. In Pascal's triangle, each number is the sum of the two numbers directly above it as shown: [https://upload.wikimedia.o

leetcode.com

 

 

재밌어 보여서 풀었다. ㅋㅋㅋ

 

그림에서 보는 거와 같이 List안에 List를 하나 더 만들어서 푸는 문제이다.

양 끝에는 1이 주어지고 그 안에는 전에 있는 숫자들의 합이다.

그래서 생각해낸 방법이

  1. for문 2개를 이용하기.
  2. 맨 처음과 맨 끝은 1을 추가해 주기
  3. 나머지 위치의 값을 계산하기 (현재 위치의 값은 바로 위 줄의 왼쪽 항과 오른쪽 항을 더한 값)

    이 순서대로 풀면 될 것 같다란 생각으로 풀었다.
class Solution {  
public List<List> generate(int numRows) {
        List<List<Integer>> answer = new ArrayList<>();

        for(int i = 0 ; i < numRows; i++) {
            List<Integer> list = new ArrayList<>();

            for(int j = 0; j < i + 1 ; j++) {
                if(j == 0 || j == i) {
                    list.add(1);
                }
                else {
                    int a = answer.get(i - 1).get(j - 1);
                    int b = answer.get(i - 1).get(j);
                    list.add(a + b);
                }
            }
            answer.add(list);
        }
        return answer;
    }
}

최근에 알고리즘을 배우면서 이해하고 있는데 도통 이해가 가지 않아서 머리 아팠는데 이런 비교적 쉬운 문제 푸니까 재밌다ㅋㅋ

'Algorithm > Algorithm 문제' 카테고리의 다른 글

[백준] 3273 두 수의 합 [Java]  (0) 2023.05.24
[백준] 1919 애너그램 만들기 [Java]  (0) 2023.05.20
[프로그래머스] 1차 보물지도 [Java]  (0) 2023.05.15
[백준] 10989 수 정렬하기 3 [Java]  (0) 2023.02.21
[백준] 2751 수 정렬하기 2[Java]  (0) 2023.02.21
    'Algorithm/Algorithm 문제' 카테고리의 다른 글
    • [백준] 3273 두 수의 합 [Java]
    • [백준] 1919 애너그램 만들기 [Java]
    • [프로그래머스] 1차 보물지도 [Java]
    • [백준] 10989 수 정렬하기 3 [Java]
    lala9663
    lala9663
    초보의 험난한 공부

    티스토리툴바