기록하지 않았다면 잃어버릴 시간들
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
Home
  • 분류 전체보기 (184)
    • Lang (6)
      • c++ (2)
      • Java (2)
      • python (2)
    • 프레임워크 (18)
      • Spring (16)
      • JPA (2)
    • 알고리즘 (141)
      • 이론 (4)
      • 백준 (59)
      • Codility (13)
      • 프로그래머스 (65)
    • CS (4)
      • 운영체제 (0)
      • 자료구조 (0)
      • DB (4)
      • 네트워크 (0)
      • 보안 (0)
    • 기타 (7)
    • 프로젝트 (4)
      • 게시판 만들기로 배우는 Spring Data JP.. (4)
블로그 내 검색

기록하지 않았다면 잃어버릴 시간들

새로운 것을 배우는게 즐거운 개발자입니다.

  • 알고리즘/프로그래머스

    Programers 정수 삼각형

    2022. 3. 12.

    by. 내이름은 킹햄찌

    https://programmers.co.kr/learn/courses/30/lessons/43105

     

    코딩테스트 연습 - 정수 삼각형

    [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30

    programmers.co.kr

    프로그래머스 정수 삼각형 문제입니다.

     

    #include <string>
    #include <vector>
    
    using namespace std;
    //500 x 500 배열 선언
    int dp[501][501];
    int maxIdx;
    int n,m;
    
    int max(int a,int b){
        return a>b?a:b;
    }
    
    
    int solution(vector<vector<int>> triangle) {
        n = triangle.size();
        m = triangle[n-1].size();
        int maxIdx = 0;
        if(triangle.size() == 1) return triangle[0][0];
        
        dp[0][0] = triangle[0][0];
        for(int i =1;i<triangle.size();i++){
            for(int j = 0;j<=i; j++){
                if(j == 0)
                    dp[i][j] = dp[i-1][j] + triangle[i][j];
                else if(j == i){
                    dp[i][j] = dp[i-1][j-1] + triangle[i][j];
                }
                else{
                    dp[i][j] = max(dp[i-1][j-1],dp[i-1][j]) + triangle[i][j];
                }
                maxIdx = max(maxIdx, dp[i][j]);
            }
        }
       
        int answer = maxIdx;
        return answer;
    }

    아이디어

    삼각형을 왼쪽으로 몰아놓고 생각을 해야함

    7

    3 8

    8 1 0

    2 7 4 4

    4 5 2 6 5

    탑다운 방식으로 점화식을 새워서 풀이 했는데 바텀업방식으로 풀이하면 더 깔끔 할 수 있음

     

    '알고리즘 > 프로그래머스' 카테고리의 다른 글

    Programers 도둑질  (0) 2022.03.12
    Programers 등굣길  (0) 2022.03.12
    Programers N으로 표현  (0) 2022.03.12
    Programers 단어 변환  (0) 2022.03.12
    Programers 네트워크  (0) 2022.03.12

    댓글

    관련글

    • Programers 도둑질 2022.03.12
    • Programers 등굣길 2022.03.12
    • Programers N으로 표현 2022.03.12
    • Programers 단어 변환 2022.03.12
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
내이름은 킹햄찌

티스토리툴바