inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Giới thiệu về giải bài toán bằng thuật toán Python (chuẩn bị cho bài kiểm tra viết mã)

6. Xây dựng tòa tháp cao nhất (ứng dụng LIS)

정렬이 아닌 넓이, 무게를 비교하여 풀수는 없을까요?

220

mentha

5 câu hỏi đã được viết

0

선생님 안녕하세요.

강의를 통해 많이 배우고 있습니다.

좋은 강의 감사합니다.

혹시 정렬을 통해 비교조건을 1개만 남기는게 아닌

넓이, 무게를 모두 사용하여 풀수는 없을까요?

넓이, 무게를 모두 사용해서 풀려고하니

5
14 5 18
12 10 9
13 12 12 # 오류 원인 케이스 5+12+10 으로 블록쌓기 불가
5 6 19
8 13 7

위와 같은 케이스에서

최대값 : 5+12+10+13 = 40 이 아닌

5+12+7 = 30 으로 오류가 발생합니다..

(그동안 쌓은 블록 중간에 다른 블록을 넣는것에 실패)

혹시 몰라 코드도 첨부드리지만

풀이까지는 무리한 질문 같아, 

넓이 무게를 모두사용해서 풀 수 있는 방법 조언 주시면 감사하겠습니다.

import sys
sys.stdin=open("input.txt", "r")
    
if __name__=="__main__":
    N = int(input())
    b = []
    for _ in range(N):
        b.append(tuple(map(int, input().split())))
    dy = [0]*N

    for idx in range(N):
        max_h = b[idx][1]
        # v (area, height, weight)
        for i, v in enumerate(b[:idx]):
            # 넓이, 무게 조건 체크
            if v[0] > b[idx][0] and v[2] > b[idx][2]:
                if (dy[i] + b[idx][1]) > max_h:
                    max_h = dy[i] + b[idx][1]
        dy[idx] = max_h
print(max(dy))

python 코테 준비 같이 해요!

Câu trả lời 2

2

codingcamp

안녕하세요^^

넓이나 무게 중 하나는 정렬하고 다이나믹히야 합니다. 정렬하지 않고 둘다 체크하면서 푸는 것은 저도 모르겠습니다.

0

mentha

선생님 감사합니다 ^^

새해 건강하시고 복 많이 받으세요!

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

1

77

2

스택에서 ')'을 만나는 경우

0

78

3

문제가 어디있나요?

0

65

2

변수 or 함수명

0

61

1

침몰하는 타이타닉 문제 질문입니다

0

56

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

110

1

아나그램 비교 코드

0

116

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

160

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

163

2

동적계획법은 사용하는 문제

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

114

0

오류원인?

0

98

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

126

2

left, right를 사용한 풀이법에 대한 질문입니다

0

91

1