[프로그래머스lv.3] 정수 삼각형

2021. 5. 4. 13:55·알고리즘 문제풀이

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


풀이

 

깊이를 i 라고 봤을 때 i-1 번째 깊이엣 ㅓ어떤 숫자를 선택했느냐에 따라 결과값이 달라진다.

즉 dp 문제이다.

 

깊이를 i, i번째 배열에서의 인덱스를 j라고 해보자

 

i번째깊이의 j번째 수의 합의 최대값은 무엇일까?

답은 i-1번째 깊이의 j-1번째수까지의 최대값과 j번째수까지의 최대값중 큰 값 + i번째깊이의 j번째 수일 것이다.

 

dp[i][j] = i번째 깊이의 j번째 인덱스가 가지는 합의 최댓값이다.

 

즉

 

dp[i][j] = max(dp[i-1][j-1],dp[i-1][j]) + triangle[i][j]

 


시간복잡도

dp[i][j] 의 갱신이 j의 총합만큼 일어난다.

j = 1,2,3,4,.....n 이므로

시간복잡도는 O(j(j+1)//2)라고 볼 수 있으므로 O(N*2)이다. N은 500 이하이므로 여유있게 통과한다.

 

 


코드(바텀업)

def solution(triangle):
    dp = [[0 for i in range(502)] for j in range(502)]
    for i,tri in enumerate(triangle,start = 1):
        for j,t in enumerate(tri,start = 1):
            dp[i][j] = max(dp[i-1][j-1],dp[i-1][j]) + triangle[i-1][j-1]

    answer = max(dp[len(triangle)])

    return answer

'알고리즘 문제풀이' 카테고리의 다른 글

[백준2872] 우리집엔 도서관이 있어  (0) 2021.05.05
[백준3980] 선발 명단  (0) 2021.05.05
[프로그래머스lv3] [2020 카카오 인턴십] 보석 쇼핑  (0) 2021.05.04
[프로그래머스lv.3] 순위  (0) 2021.05.04
[프로그래머스.lv3] 입국심사  (0) 2021.05.03
'알고리즘 문제풀이' 카테고리의 다른 글
  • [백준2872] 우리집엔 도서관이 있어
  • [백준3980] 선발 명단
  • [프로그래머스lv3] [2020 카카오 인턴십] 보석 쇼핑
  • [프로그래머스lv.3] 순위
WildDevmon
WildDevmon
『앗! 야생의 개발몬(이)가 나타났다!』
  • WildDevmon
    야생의 개발몬
    WildDevmon
  • 전체
    오늘
    어제
    • 분류 전체보기 (33)
      • Server (3)
      • 알고리즘 문제풀이 (27)
      • 회고 (3)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1114백준
    백준 1034
    백준6980
    백준 1114
    네이티브 메모리
    백준1238
    백준1188
    합승 택시 요금
    백준 30
    네카라쿠배 취업
    백준 10610
    통나무 자르기
    2020 카카오 인턴
    백준 18405
    선발 명단
    보석 쇼핑
    백준 5347
    백준 1027
    백준2262
    자바 최소공배수
    백준 인형들
    자바 스레드 상태
    카카오 1차
    자바 물리 메모리
    direct buffer
    토너먼트 만들기
    백준 17281
    소가 길을 건너간 이유 5
    다이렉트 버퍼
    백준1747
    백준 램프
    파이썬
    백준15954
    자바 최대공약수
    프로그래머스 정수 삼각형
    경력 서류
    백준 경쟁적 전염
    ai개발자
    프로그래머스 보석 쇼핑
    커널 스레드 상태
    소수&팰린드롬
    백준 어린 왕자
    카카오 필요스펙
    컴공 취준
    백준 파티
    백준 고층 건물
    백준 1004
    카카오 인턴
    백준14465
    백준 1114 파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
WildDevmon
[프로그래머스lv.3] 정수 삼각형
상단으로

티스토리툴바