fhskf94kr   5년 전

문제를 푸는것에는 별 이상이 없지만, 문제 조건이 불명확 하여 글 올립니다.

문제의 입력 조건

첫째 줄에 단어의 수 N (1 ≤ N ≤ 100)이 주어진다.

그리고 문제의 정답이 될 수 있는 조건

1. 민균이의 비밀번호는 목록에 포함되어 있으며, 비밀번호를 뒤집어서 쓴 문자열도 포함되어 있다.

2. 항상 답이 유일한 경우만 입력으로 주어진다.

로 보았을 때, 단어의 수의 입력 범위가  N (2 ≤ N ≤ 100) 가 되거나, 테스트 케이스에서 N == 1인 경우를 추가해야 할 것으로 생각됩니다.

우선,

1번 조건에 의하여 N == 1일 때는 정답이 될 수 있는 경우는 해당 문자열이 팰린드롬을 만족할 때 밖에 없습니다. 그리고 2번 조건에 의하여 N == 1일 때는 항상 팰린드롬을 만족하는 입력만 들어온다고 볼 수 있습니다.

하지만, N == 1일 경우를 생각하지 않고 구현한 코드 또한 해당 문제를 통과하는 것을 볼 수 있습니다. 본 재출 코드는 N == 1일 경우 아무런 값을 출력하지 않습니다.

(코드 채점 번호 : 10400553. N == 1 일 경우, 두 번째로 보이는 for(int i = 0 ; i < N-1 ; i++) 을 수행하지 못하여 출력 값이 없습니다.) 

(코드 채점 번호 :  10400994. N == 1 일 경우 이상한 값을 출력하도록 구현해봤으나 그대로 통과합니다.)

따라서, N의 범위를 1부터로 지정한 것이 팰린드롬을 생각하고 주어진 조건이라고 생각하면 N == 1일 경우의 테스트 케이스 추가가 필요하고,

그것을 생각하지 않았다면 N의 범위를 2부터로 수정하는게 맞다고 생각됩니다.

*

추가.

for문을 돌릴 때, 자기 자신부터 비교하지 않으면 틀렸다는 오류가 나는 것으로 보아 팰린드롬이 입력으로 주어지는 경우의 케이스도 있는 것으로 보입니다.

N의 범위 수정이 아닌, N == 1의 테스트 케이스 추가가 필요한 것 같습니다.


startlink   5년 전

수정했습니다.

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