CodingTest/Baekjoon

[baekjoon] 백준 1965번(파이썬): 상자넣기

JunJangE 2022. 2. 9. 21:27

문제

 

1965번: 상자넣기

정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가

www.acmicpc.net

알고리즘

- 반복문을 통해 모든 상자의 크기를 확인한다.

- 다음 상자의 크기와 그전에 있는 모든 상자의 크기를 비교한다.

- 마지막 상자의 크기가 다음 크기에 다음 상자의 크기보다 크다면 상자의 계수를 카운트한다.

코드

import sys

n = int(sys.stdin.readline())
box = list(map(int, sys.stdin.readline().split()))
# 상자안에 넣어진 상자의 계수
result = [1] * n

for i in range(1, n):
    # 상자의 계수를 비교할 변수 초기화
    result_max = 0
    for j in range(i):

        # 다음 상자의 크기와 그전에 있는 모든 상자의 크기 비교
        if box[i] > box[j]:
            # 상자의 계수 비교
            if result_max < result[j]:
                result_max = result[j]

    # 상자의 계수 카운트
    result[i] = result_max + 1

# 리스트에서 제일 큰 수를 출력
print(max(result))

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com