busyhuman   4년 전

https://www.acmicpc.net/source/18535972

제 소스인데 비행기의 수(P)를 사용하지 않고 풀었습니다.

seastar105   4년 전

비행기수가 아무리 많아도 게이트수까지만 비행기를 받을수 있으니까 최대 게이트수 만큼의 비행기만 봐도 맞는거 같네요

busyhuman   4년 전

@seastar105 위 예제의 답은 3이지만 제 소스는 1을 내놓습니다

seastar105   4년 전

@busyhuman 예제의 답은 1이 맞지 않나요?


'이렇게 공항을 운영할 경우 간혹 비행기가 어떤 곳에도 도킹하지 못하는 사고가 발생한다. 이러한 사고가 일어나면 공항의 평판이 급속히 나빠져, 이후 어떤 비행기도 도착하지 않으려 할 것이다.'

첫번째 비행기는 1번 게이트에 도킹하고 두번째 비행기가 도킹을 못하니까 두번째 비행기부터는 공항에 오지 않기 때문에 1이 맞는것 같습니다.

busyhuman   4년 전

@seastar105 그렇네요. 보다가 생각난건데 g > p일 경우 주어진 입력보다 더 많은 입력을 받게되는거같은데 이에대한 오류는 안뜨는건가요?

seastar105   4년 전

입력대기 상태로 안끝나서 시간초과가 나야될 거 같은데 g>p면서 끝까지 입력을 받는 데이터가 없다든가 아니면 저도 잘 모르겠습니다.

jh05013   4년 전

파일 입력의 경우 cin >> x를 했는데 더 이상 들어올 글자가 없으면 EOF가 들어오고, 연산이 바로 끝납니다. x의 값은 바뀌지 않습니다.

해당 코드에서는 cin >> arr[i]를 하는데, g > p라서 받을 입력이 없으므로 arr[i]는 0으로 그대로 남습니다. 따라서 dp[arr[i]] == 0이고 break로 루프가 끝나서, ans의 값은 P가 됩니다.

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