nhs0912   7년 전

먼저 teamScore[] 에 각 팀의 점수를 저장합니다. 순서대로 팀A부터 시작하구요. (0번째는 A팀,1번째는 B팀)

그래서 각각 입력을 받아서 

1 3 3 1

이면 앞에 두번째 숫자까지 1,3 을 1씩 빼서 0,2로 만듭니다. (teamScore[] 배열에 저장하기 위해서)

그리고 나머지 뒤에 두 점수를 비교해서 앞의 점수가 더 크면 teamA가 이겼으니깐 teamA 배열에 +3점 해줍니다. 물론 반대인 경우는 반대팀에다가 승점 +3 해주고요. 비기면 각 팀에 +1을 해주고요. 

이런 식으로 해서 승점 배열(teamScore[])을 임시 배열 tmpArr[] 에 복사를 한다음에 내림차순으로 정렬합니다. 

그리고 tmpArr[] 배열 순서대로 rankArr[] 에다가 순위를 저장합니다. 물론 공동순위 있으면 공동 순위를 매긴 다음에 공동순위가 아닌 순위가 나온다면 그 배열에는 공동 순위 갯수+ 공동순위를 해서 등수를 저장합니다.

그리고서 teamScore[] 순서대로 각 배열에 저장된 값을 tmpArr[]에 값을 찾고, 찾은 index값으로 rankArr[index]값을 불러내서 순위를 출력합니다. 


이런식으로 알고리즘을 짜주었는데요. 다른 경우도 넣어봤는데 틀린 경우를 찾기가 매우 힘드네요..ㅠㅠ 

어떤 경우에 틀렸을까요???


그리고 공동 순위 매기는데 다른 방법이 있으신분은 알려주시면 감사하겠습니다^^ 

zlzmsrhak   7년 전

반례입니다.

54번째 줄에서 1을 더해주는 것이 아니라 overlapRank를 더해주어야 하고, 그 후에 overlapRank 변수를 초기화해줘야 하는 것 같습니다.

nhs0912   7년 전

답변 감사합니다. 그런데 소스를 수정했는데도 똑같이 틀렸다고 나오네요....

아 정말 3일 째 이것만 보는데 모르겠네요 ㅠㅠㅠ 

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