[PS] Programmers 43106 정수삼각형

Speedwell🍀·2023년 5월 18일
0

PS

목록 보기
9/16

문제 링크

def solution(triangle):
    answer = 0
    
    for i in range(1, len(triangle)):
        for j in range(i + 1):
            if j == 0:
                triangle[i][j] += triangle[i-1][j]
            elif j == i:
                triangle[i][j] += triangle[i-1][-1]
            else:
                triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j])

    answer = max(triangle[-1])
    return answer
  1. j == 0 인 경우는 삼각형 한 줄의 가장 왼쪽을 의미
    => 윗줄의 가장 왼쪽 값을 더해줌
  2. j == i 인 경우는 삼각형 한 줄의 가장 오른쪽을 의미
    => 윗줄의 가장 오른쪽 값을 더해줌
  3. 그 외의 경우는 삼각형 한 줄의 중간에 위치한 값들을 의미
    => 윗 줄의 왼쪽/오른쪽 값 중 큰 값을 더해줌

0개의 댓글