\b도 하나의 문자입니다. 그것이 화면상에 출력될 때는 커서가 하나 앞으로 이동하는 것처럼 보이지만, 출력되는 내용 자체는 그냥 \b라는 문자가 하나 더 있을 뿐입니다.
채점 프로그램이 뒤에 공백 하나 정도는 너그럽게 봐 주니까 너무 신경쓰지 않으셔도 됩니다.
3460번 - 이진수
\b 때문에 틀렸습니다 를 받은 겁니다.
(별찍기 문제를 제외한) 채점 프로그램에서는 제출한 답안이 생성한 출력 결과의 마지막에 붙어있는 whitespace (space, newline, ...) 등을 무시하고 채점합니다. 하지만 "\b"는 whitespace가 아니기 때문에 채점 프로그램이 볼 때는 틀린 답안이 됩니다.
\b 문자는 사람이 모니터에서 볼 때 보이지 않는 문자라고 해도 엄연히 컴퓨터 데이터상으로는 존재하는 데이터이기 때문입니다.
다만, 별찍기 문제에서는 빈 칸 하나하나가 중요한 의미를 가지기 때문에 출력 결과 마지막에 붙어있는 whitespace도 채점 대상이 됩니다.
댓글을 작성하려면 로그인해야 합니다.
irikong 6년 전
답을 출력할 때 별찍기 문제들 처럼 마지막에 남아있는 공백들이 찝찝해서 마지막 공백을 지우고 다음 줄로 넘어갈 수 있도록 printf("\b\n");와 같이 처리하였는데 틀렸습니다가 나와서 printf("\b\n"); 부분에서 \b를 지우고 제출하니 바로 맞았습니다로 처리되었습니다.
범위 내의 수를 이진수로 나타낼 때 1이 1번씩은 있으므로 출력의 마지막에는 항상 공백이 남아있을 것이기 때문에 \b를 해서 답에 직접적인 영향이 갈 것이라고는 생각되지 않습니다. 직접 입력해봐도 잘 출력됩니다. 뒤의 공백을 제거했기 때문에 틀린 것 같은데 이게 아니라면 \b를 사용해서는 안되는 다른 이유가 있는지 궁금합니다.