PS/자주 하는 답변

매 케이스/쿼리마다 개행 문자를 출력해야 합니다.

djm03178 2022. 12. 2. 14:48

다중 테스트 케이스 문제들에서 조심해야 할 것은, 단일 테스트 케이스 문제와 달리 답을 하나만 딱 출력하고 끝내면 안 된다는 것입니다. 채점 프로그램은 그저 출력한 내용 전체가 정답 전체와 같은지를 비교할 뿐이기 때문에, 각 케이스에 대한 답 사이에 있는 개행 문자도 당연히 답 전체에 포함됩니다.[각주:1] 그래서 반드시! 각 케이스에 대한 답을 출력한 뒤 개행을 해주고 다음 테스트 케이스로 넘어가야 합니다.

// NO
cout << answer;

// YES
cout << answer << '\n';
// NO
System.out.print(answer);

// YES
System.out.println(answer);
# NO
print(answer, end='')

# YES
print(answer)

위와 같이 단순한 경우 외에 보다 실수를 잘 유발하는 케이스로는 문자열 반복 문제와 같은 경우가 있는데, 글자 단위로 반복하여 출력하는 경우 답 출력문 자체에 개행을 넣을 수 없기 때문에 모든 답 출력이 끝난 이후 개행만을 출력하는 문장을 추가로 넣어주어야 합니다.

 

여러 쿼리에 대한 답을 각각 출력해야 하는 문제도 마찬가지로 일반적으로 각 쿼리에 대한 답을 개별적인 줄에 출력하도록 요구하므로, 답을 하나 출력할 때마다 개행 문자를 출력하는 것을 잊지 않아야 합니다.

  1. https://help.acmicpc.net/judge/info의 '출력 형식이 잘못되었습니다' 부분에 언급된 바와 같이 개행 대신 공백을 출력해도 되기는 하지만, 스페셜 저지나 다른 온라인 저지에서도 된다는 보장은 없습니다. [본문으로]