inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

6. 가장 높은 탑 쌓기(LIS응용)

선생님, 질문이 있습니다.

212

celestial_

작성한 질문수 72

0

안녕하세요, 선생님, 강의 잘 듣고 있습니다. 

다음은 제 코드인데 작동 방식은 강의를 들은 토대로 작성을 해서 크게 대동소이 합니다. 

그런데 계속 이 문제 뿐만아니라 dp 모든 문제들을 채점돌려보면 시간초과가 나고 있습니다.. 지금 소스코드와 비교를 해도 크게 다르지는 않은데 이유를 모르겠습니다. 

혹시 제가 비쥬얼 스튜디오를 쓰고 있어서 

#include<bits/stdc++.h>를 안써서 그런것인지..이거도 궁금하네요.

아 그리고

새해 복 많이 받으세요!!

#include<stdio.h>
#include<iostream>
#include<vector>

using namespace std;

typedef struct block {
	int space;
	int height;
	int weight;
}Block;

int dy[101];
Block blocklist[101];


int n;
int main() {

	cin >> n;

	for (int i = 1; i <= n; i++) {
		int s, h, w;
		cin >> s >> h >> w;
		blocklist[i].space = s;
		blocklist[i].height = h;
		blocklist[i].weight = w;
	}


	int ans = 0;
	dy[1] = blocklist[1].height;
	
	for (int i = 2; i <= n; i++) {
		int max = 0;
		//printf("\n\n<<현재 기준점 블럭의 정보 : %d %d %d >>\n\n", blocklist[i].space, blocklist[i].height, blocklist[i].weight);
		for (int j = i - 1; j > 0; j--) {

			if (blocklist[j].space > blocklist[i].space && blocklist[j].weight > blocklist[i].weight && max < dy[j]) {
				//printf("넓이 비교 %d > %d \n\n", blocklist[j].space, blocklist[i].space);
				//printf("무게 비교 %d > %d \n\n", blocklist[j].weight, blocklist[i].weight);
				
				max = dy[j];
				//printf("현재 max값 : %d\n\n\n", max);
			}
		}
		max = max + blocklist[i].height;
		/*printf("새로 쌓을 수 있는 블럭의 높이 :%d\n\n", blocklist[i].height);
		printf("새로 갱신된 max값 : %d\n\n", max);*/
		dy[i] = max;
		//이거 안해줘가지고 계속 안된거임. 
		if (max > ans) {
			ans = max;
		}
	}

	cout << ans;

}

코테 준비 같이 해요! C++

답변 1

0

김태원

안녕하세요^^

타림리밋이 나지 않는 코드입니다. 제 컴퓨터에서 해보니 아무 문제 없습니다. 타임리밋보다는  정답이 안나오는 코드입니다.  채점해보시고 정답이 안나오는 2번 데이터를 가지고 디버그해보세요.

테스트 케이스 질문

0

371

1

병합정렬 시간복잡도 질문

0

461

1

41.연속된 자연수의 합 문제풀이에서 수학적인 원리를 모르고 있습니다.

0

1341

2

질문드립니다.

0

374

1

질문드립니다!

0

427

1

dev 프로그램 질문

0

272

1

문제가 이해가 안되요

0

374

1

4번 나이차이 문제 접근법 질문 드립니다.

0

305

1

source file not compiled

0

1033

3

59번 질문드립니다.

0

369

1

25번 문제 질문

0

345

1

4. 나이차이 문제 질문입니다.

0

367

1

90번 라이언 킹 심바 1번 테스트 케이스

0

468

1

71번 문제 전역 변수 질문 있습니다

0

357

1

75번, 79번 priority_queue관련

1

353

1

75.최대 수입 스케줄

0

394

2

복면산 정답의 수

0

428

1

테스트 케이스에 대해서

0

443

1

수업 내용 질문입니다!

1

228

1

풀어보면 좋은 문제 목록 - 2580 스토쿠 DFS 질문입니다!!

0

818

2

12. 플로이드-와샬(그래프 최단거리) . 27:25초

0

251

1

다른 풀이 방식

0

314

1

크루스칼 vs 프림

0

303

1

숫자 총개수 small 질문있습니다.

0

234

1