취준생의 코딩테스트 연습기

[백준] 1932 정수 삼각형 / 파이썬(python) 본문

코딩테스트/백준

[백준] 1932 정수 삼각형 / 파이썬(python)

Jiwon_C 2021. 6. 14. 23:45

# 문제 링크

https://www.acmicpc.net/problem/1932

 

1932번: 정수 삼각형

첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.

www.acmicpc.net

# Soultion

자신 위의 두 숫자중 큰 숫자를 더해주는 방식으로 문제해결

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
= int(input())
li = []
for _ in range(n):
    li.append(list(map(int,input().split())))
 
for i in range(1,n):
    for j in range(len(li[i])):
        if j==0:
            li[i][j] += li[i-1][0]
        elif j==len(li[i])-1:
            li[i][j]+=li[i-1][-1]
        else:
            li[i][j] += max(li[i-1][j],li[i-1][j-1])
            
print(max(li[-1]))
cs
 

3. 리스트에 정수 저장

6. 2번째 리스트부터 시작해서 최댓값을 저장

8. 만약 리스트에 첫번째 숫자라면 항상 그 위의 첫번째 인덱스아이만 더하므로 예외처ㅣㄹ

10. 리스트 마지막 인덱스도 동일하게

15. 최종적으로 누적해서 저장된 값 중에 최대값 출력

Comments