20183016   5년 전

먼저 테스트 케이스입니다.


input

3

a

input

10
aaaaaaaa
aaaaaaab
aaaaaaca
aaaaaaaaaaaaa
aaacdefaaaa
baaaa
baaaaaaaaaa
aaaaazaa
aaaacdsa
aaaaadd


output
a
output

baaaa
aaaaadd
aaaaaaaa
aaaaaaab
aaaaaaca
aaaaazaa
aaaacdsa
aaacdefaaaa
baaaaaaaaaa
aaaaaaaaaaaaa


구조체, 머지소트를 이용. 정렬 후 중복은 제거함수로 제거했습니다. 하지만 안됩니다..ㅜㅜㅜ

제가 생각가능한 대부분 테스트케이스는 문제에 만족합니다.

하지만 틀렸다고 나와서 반례가 있는건지.... 잘못 코딩한건지 모르겠습니다.

제가 생각해낸 구현 프로세스 :

  1. 문자열과 그 문자열의 길이를 한 구조체 내에서 정의
  2. 중복포함 길이 먼저 머지소트로 정렬
  3. 길이가 같을시 사전순으로 머지
  4. 머지소트 종료후 중복 제거
  5. 출력

이렇게 제가 구현했습니다. 잘못 코딩한거 있으면 지적 부탁드립니다 ㅜㅜㅜ

피가 마릅니다ㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜ

0프로도 안나오고 틀렸습니다 나옵니다.

/*

(추가)

코드 수정했습니다.

채점하자마자 틀렸다고 하는데

왜 안되는지 모르겠습니다.

*/

indioindio   5년 전

96번째 줄의 while(strcmp(arr[i].word,arr[i+1].word)==0)

i가 arr의 범위 밖을 참조하는 경우가 있네요.

20183016   5년 전

답변 주셔서 정말 감사합니다. 지적해 주신 중복 제거 함수인 overlapErase를 수정해봤습니다. 역시 안되네여...

제일 수상한게 0%도 가지않고 "틀렸습니다"가 뜨는건데 좀 더 고민해봐야겠네요

20183016   5년 전

사전 순 정렬 코드를 strcmp로 했더니 해결했습니다.

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