na982   7년 전

그리디 방식으로,

1. 한개의 단어라도 그룹단어 조건에 만족하지 않으면 그룹단어가 아니라고 판단.

2. 어떤 단어 1개를 추가 한다.

3. 현재까지 추가된 단어의 앞자리 또는 뒷자리 알파벳과 같은 단어로만 되어있으면 연결한다.

4. 현재 까지 까지 연결된 단어의 앞자리 알파벳으로 끝나는 단어는 앞에 붙이고, 뒷자리 알파벳으로 시작하는 단어는 뒤에 붙인다.

5. 4번에서 단어를 붙이면 다시 3번으로 간다.

6. 5번까지 추가된 단어가 없고, 남은 단어 중에서 시작과 끝이 현재까지 나오지 않아서 앞 또는 뒤 에 붙일수 있는 단어는 뒤에다 붙이고,

답이 여러개 나올수 있거나, 답이 될수 없는 경우라고 체크한다.

7. 6번이 만족했으면 3번으로, 6번이 만족하지 않았으면 종료 시킨다.


위와 같은 로직으로; 구현하였는데; 어디가 구멍인지 잘 모르겠습니다;;

nsy0042   7년 전

안녕하세요~

만약 원래 단어로 가능한 것이 여러 개일 경우에는 -_-를 출력한다. 만약 만들 수 없다면 gg를 출력한다.

여러개일 경우는 -_- 출력하는 것인데,  gg가 나오는군요

3

ap

per

pyy인 경우

apper과 appyy 2가지 경우가 있는데, gg인 경우가 나오게 되네요.

na982   7년 전

ap, per, pyy의경우

3가지를 모두 사용해서 그룹단어를 만들수 있느냐가 문제 입니다.

3개중에 2개만 연결해서 그룹단어가 된다고, 그룹단어라고 하지 않습니다.;

nsy0042   7년 전

위에꺼는 죄송합니다.

제가 잘 몰라서 그랬는데 이번 반례는 맞나 잘 모르겠지만 올리겠습니다.

3

ap

per

rqqe인 경우면

결과는 apperrqqe로 나오지만, per에서의 e 하고 rqqe에서 e가 따로따로 나오기 때문에 그룹단어가 아니지 않나 싶습니다.

na982   7년 전

맞습니다;

계속 저도 케이스 만들어가면서 수정하고 있는데; 코드가 점점 길어지네요;;

지금까지 수정한 코드입니다.

위의 케이스는 수정하였는데, 아직도 오답이네요

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