mic1021   7년 전

높이가 h일때 방해하는 종유석갯수=b[h]

높이가 h일때 방해하는 석순 갯수=a[h]이라고 두고

a[n]+b[n]을 벡터에 넣고 정렬해서 가장 작은 값인 ans[0]을 출력하고 최소값이 여러개나올때마다 cnt를 증가시켜줘서 그 갯수까지 출력해줬는데요

어떤 부분에서 틀린걸까요..

yukariko   7년 전

종유석과 석순이기 때문에 a[i] 와 b[i]의 위치가 같지 않습니다.

a[i] 와 b[h-i] 같은 식으로 구해야할것같네요.

mic1021   7년 전

yukariko 음.. 그래서 17번째 줄에 for문을 오름차순으로 돌려서 구했는데 음.. 해주신 답변이 잘 이해가 가질 않네요

yukariko   7년 전

높이의 개념을 위치로 생각하지않고, 상대적인 높이로 생각하면

종유석은 위에서 아래로 내려갈수록 높이가 높고, 석순은 아래에서 위로 올라갈수록 높이가 높다고 할 수 있습니다.

이렇게 생각했을때, 석순의 높이 4와 종유석의 높이 4는 서로 다른 위치를 갖을 수 있습니다.

폭이 5일때, 석순의 높이 3과 같은 종유석의 높이는 5 - 4 + 1  = 2가 됩니다.


아래코드는 수정하여 정답을 받은 코드입니다.

draner11   7년 전

우선 틀린 이유는

for(int i=0;i<n/2;++i){ 만큼 받아서 입니다 15개로 딱 안맞아 딸어질때

/2하면 7번 돌죠. 그래서 마지막 것을 체크하지 못하기때문에 틀렸습니다가 나옵니다.

yukariko   7년 전

@draner11 N이 항상 짝수이기 때문에 그부분은 문제가 아닌것 같습니다.

mic1021   7년 전

아.. 제가 문제 이해를 잘못 했네요

입력을 받을 때 항상 맨 아래를 1로 두고 y좌표를 입력받는 건 줄 알았습니다.. 

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