PS/자주 하는 답변

'출력 형식이 잘못되었습니다'의 의미

djm03178 2023. 1. 29. 22:57

출력 형식이 잘못되었습니다라는 판정을 처음 받으면 대개 매우 당황하게 됩니다. 아무리 봐도 눈에 보이는 글자들의 출력은 완벽한데요? 하지만 이 메시지가 의미하는 것은 눈에 보이는 형식이 아니라 눈에 안 보이는, 공백이나 개행과 관련된 형식이 잘못되었다는 뜻입니다.

 

이와 관련한 질문이 가장 많이 나오는 출처가 별 찍기 시리즈입니다. 별 찍기 - 2 문제를 예로 들어보겠습니다. 다음과 같은 파이썬 코드를 실행해 보면 출력이 언뜻 보기엔 완벽해 보입니다.

n = int(input())
for i in range(n + 1):
    print(' ' * (n + 1 - i) + '*' * i)

실행 결과는 https://ideone.com/GRinXF 에서 볼 수 있습니다. 문제의 예제와 똑같아 보이지 않나요? 그런데 이 코드를 그대로 제출하면 출력 형식이 잘못되었습니다 판정을 받게 됩니다. 어디가 잘못되었을까요?

 

예제 출력과, 출력된 내용을 각각 블록 지정하고 비교해 봅시다.

아하, 예제 출력과 비교했을 때 맨 윗줄에 아무 내용도 출력이 안 된 줄이 하나 더 있고, 매 줄마다 왼쪽 칸에 공백이 하나씩 더 출력되었네요. 채점 프로그램은 한 글자 한 글자에 정말 민감하기 때문에 이런 눈에 보이지 않는 부분도 결코 소홀히 하고 넘어가서는 안 됩니다.

 

다만 채점 프로그램도 융통성이 있어서, 다음과 같은 경우들은 허용을 해줍니다.

  • 개행 대신 공백, 또는 공백 대신 개행을 출력한 경우
  • 각 줄의 끝에 불필요한 공백이 1개 있는 경우

 

하지만 그 이상으로 불필요한 화이트스페이스가 더 있거나 필요한 화이트스페이스를 출력하지 않으면 모두 출력 형식이 잘못되었습니다를 받게 될 것입니다. 채점은 오로지 출력된 내용만을 보는 것이기 때문에 출력한 모든 글자가 중요하다는 것을 꼭 기억하세요.