PS/자주 하는 답변

좋은 질문을 하는 방법

djm03178 2024. 9. 20. 11:34

BOJ에서 틀린 코드에 대한 도움을 받고 싶을 때 기준입니다.

 

이런 글이 길어지면 읽기 피곤하니, 짧게 가겠습니다.

질문을 올리기 전에

  • 조금만 더 고민해 보세요. 디버깅 과정도 엄연히 문제 풀이 과정의 일부이고, 아주 중요한 능력입니다. 오답을 받자마자 고민 없이 곧바로 질문글을 작성하는 것이 습관이 되면 결국 디버깅 능력은 기를 수가 없습니다.
  • 예제들을 다시 한 번 넣어보세요. 반례는 보통 멀리 있지 않습니다. 한 글자 수정할 때마다 예제가 나오는지 여부가 매번 바뀌는 건 매우 자연스러운 현상이기 때문에, 다른 곳에서 반례를 찾기 전에 예제를 일단 전부 다시 넣어보는 것이 좋습니다.
  • 질문 게시판을 먼저 확인해 보세요. 푼 사람이 많은 문제들의 경우 질문 게시판에 이미 수백 개의 글들이 올라와있는 경우가 많고, 많은 코드는 공통된 문제점을 가지고 있어, 그 코드의 반례가 내 코드의 반례가 되는 경우가 많습니다. 또한 반례 자체에 대해서는 잘 나오더라도 답변글의 내용이 내가 놓친 부분을 지적하고 있을 수도 있으니, 내용도 같이 읽어보는 것이 좋습니다.
  • 에러 메시지를 확인해 보세요. 받은 에러가 컴파일 에러라면 그 상세 내역을 볼 수 있고, 런타임 에러 이유를 알려준 경우 거기서도 많은 힌트를 얻을 수 있습니다.

질문글 작성 요령

  • 코드는 반드시 틀린 코드 전체를 한 글자의 수정도 없이 그대로 올려주세요. 몇 번을 강조해도 지나치지 않습니다. 맞은 코드가 아니라, 틀린 코드를 자르거나 변형하지 말고 그대로 올려야 합니다. 본문에 올리면 코드가 깨지고 읽을 수가 없기 때문에, 밑에 코드 올리는 칸에 언어 설정을 맞춰서 올리는 것이 좋습니다.
  • 받은 판정을 구체적으로 설명해 주세요. 채점의 판정에는 여러 종류가 있고, 오답 판정이 다 같은 것이 아니라 그 판정 자체에서 많은 힌트를 얻을 수 있습니다. 받은 판정이 틀렸습니다인지, 시간 초과인지, 런타임 에러인지 등에 따라 문제에 접근하는 방법 자체가 다릅니다. 에러 메시지가 있다면 그 에러 메시지도 가감 없이 그대로 보여주는 것이 좋습니다.
  • 코드에 대한 설명을 적어주세요. 코드 전체를 하나부터 열까지 다 설명할 필요는 없습니다. 무엇을 하고 싶은 코드인지만 간략하게 적으면 됩니다. 문제를 어떻게 접근했고, 어떤 알고리즘을 사용하여 어떤 방법으로 해결하려 한 것인지만 말해줘도, 답변자가 코드를 읽는 시간이 반으로 줄어듭니다.
  • 잘 되는 것들은 말하지 않아도 됩니다. 예제가 잘 나오고, 다른 글들의 반례가 잘 나오고, 로컬에서는 잘 되고, 입력하면 답이 바로 나오고... 등은 질문글에 아무런 정보를 더하지 않습니다. 정답을 받는 데에 올바른 점이 많은 것은 아무런 소용이 없습니다. 잘못된 점이 단 한 개도 남아있지 않을 때까지 수정해야 하는 것입니다. 불필요한 내용으로 질문글을 길어지게 만들 필요가 없습니다.

답변을 받은 이후

  • 질문글을 지우지 말아주세요.
  • 기존 질문에 이어지는 질문은 답글로 이어서 올려주세요. 새 글을 작성하면 맥락이 끊어질 뿐만 아니라 기존 답변자에게 알림도 가지 않아 이어서 도와주기도 힘들어집니다.
  • 해결된 질문에는 해결됨 표시를 달아주세요. 또한 좋아요 버튼이나 간단한 답글을 통해 답변자에게도 문제가 해결됐음을 알려주면 좋습니다.