surung9898   5년 전

1004번을 풀고 자만에 가득차버린 저는 그만 1005번에 손을 대고 말았습니다...

그리고 끔찍한 코드를 생산해내고야 말았습니다...

약 130줄로 이루어진 괴물은 저를 이틀동안이나 저를 교란하였습니다...

질문 게시판에 흩뿌려진 테스트케이스를 통과하기 위한 치열한 싸움...

그리고 하나 통과할때마다 부푼 마음으로 제출... 그리고 틀룠습니다...

저는 도저히 아래의 테스트 케이스를 넘길 수 없음을 깨닫고 여기에 질문올려봅니다...

1
10 11
10 20 30 40 50 60 70 80 90 100
1 2
2 3
3 6
6 9
5 4
4 7
7 8 
8 9
4 9
10 7
4 3
9

대략적인 코드 설명은, [목표 건물로 도달하는 길 중 가장 오래걸리는 시간] + [목표 건물 건설 시간]으로 생각하여 짜보았지만 잘 안되는 모습입니다.

그래서 제가 이 코드를 조금 발전시킬 방법이 있는지,

아니면 멍청한 놈 이 코드를 버려라! 를 적어주십시오... 그럼 머리를 박으며 버리겠습니다...


코드가 복잡합니다... 혹시나 도와주시려고 코드를 분석하시는 분들 정말 죄송합니다.

gaelim   5년 전

이해하기 더 쉬운 케이스를 들고왔어요

1

5 4

10 10 10 100 10

1 2

2 3

4 5

4 3

3

output :130

1

5 4

10 10 10 100 10

1 2

2 3

4 3

4 5

3

output :110


jh05013   5년 전

참고로 번호와 난이도는 무관하기 때문에 번호 순서대로 문제를 푸는 것은 별로 좋지 않습니다. 1006번 문제는 번호도 작으면서 끔찍하기로 악명이 높은...

yonggi11   5년 전

gaelim님 

테스트케이스 1번과 2번이 답이 다른가요?

gaelim   5년 전

@yonggi11 님 소스로 돌려보았을 때 답이 다르게나오는데요? 

답이 동일하게 나와야 정상아닐까요? 

yonggi11   5년 전

@gaelim

제 소스는 동일하게 나옵니다. 위에 output : 쓰셨던게 정답이라고 적어놓으신게 아니라 질문자 코드를 돌린 후 결과를 써놓은신건가요?

제 질문의 의도는 테스트 케이스 1번과 2번이 동일한 답이라고 생각했기 때문에 질문드렸습니다. 제가 오해한 것이라면 죄송합니다 ^^.. 

gaelim   5년 전

@yonggi11 질문자님 소스로 돌려본것이 맞습니다. 두 케이스 output이 다르게 나오는군요 

1

5 4

10 10 10 100 10

1 2

2 3

4 3

4 5

3

output 110

1

5 4

10 10 10 100 10

1 2

2 3

4 5

4 3

3

output 130

gaelim   5년 전

아! 그러니까 저 두 케이스 답이 110으로 일관되게 나와야합니다.

질문자님 소스는 아래 케이스에서 130을 출력합니다. 

yonggi11   5년 전

@gaelim

지금 댓글을 단 질문은 제가 한 질문이 아니고 surung9898님이 질문하신 글입니다. 1005번 질문 게시판에 새로운 글로 질문을 올렸으니 한번 봐주시면 정말 감사하겠습니다 ㅠㅠ..

귀찮게 해드려 죄송합니다..

surung9898   5년 전

@gaelim

죄송합니다...! 제가 돌대가리라 한 번만 더 도움 좀 부탁드리겠습니다... ㅠㅠㅠ

위의 코드에서 qq 함수를 조금 고쳤습니다...

방문했더라도 설치 시간을 갱신할 수 있게 코드를 수정하고, 이를 위해 initial이라는 각 건물 설치 시간 초기값을 기억하게 해놓았습니다..

그리고 답변자님의 코드를 포함한, 질문게시판 바다에 널려있는 반례를 하나하나 찾아 넣어보았더니 틀린 케이스 없이 정확하게 돌아가는 모습을 보여,

유튜브에서 긴장되는 BGM을 틀어놓고 무릎을 꿇고(실화) 맞았습니다를 영접하려고 했으나 실상은...

런타임에러가 저를 반겨주었습니다...

처음에는 큐의 갯수가 부족한 줄 알아 큐의 공간을 무려 7백만개로 선언해서 해보았지만 역시 통과되지 않아...

실례를 무릅쓰고 한번 더 도움을 간청해봅니다... 도와주십시오 ㅠㅠㅠ

gaelim   5년 전

@surung9898 

음... 아무래도 

위상정렬에 대해서 먼저 공부하신다음에 문제를 풀어보는게 정신건강에 좋을것같습니다. 

댓글을 작성하려면 로그인해야 합니다.