lazy_ren   7년 전

아래 s 값이 구글링으로 찾은 문제의 답, hansu 값이 직접 코딩한 값입니다.

test 케이스를 3000으로 넣어서 돌렸을시, 1050 부터 값이 달라집니다.


물론 1000초과의 숫자들까지 완벽하게 구해내는게 최적의 알고리즘 이겠지만


해당 문제의 입력에서 N 값은 1000 보다 작거나 같은 자연수라고 명시해둔 만큼 해당 범위내에서

돌아간다면 정답으로 처리해야 옳은 것 같은데, 틀렸다고 명시하는 것은 문제의 N 값의 범위에 오류가 있다고 생각됩니다.


p.s. is_hansu()함수를 조금 변형하여 N < 10000의 경우까지 한수를 제대로 찾아내도록 변경한결과 정답을 받아내었습니다.

N의 값은 1000보다 작거나 같은 이 아닌 10000보다 작거나 같은 일 것으로 생각됩니다.

bool is_hansu(int num)
{
  int a, b, c, d, order = 0;

  a = num % 10;
  b = (num % 100) / 10;
  c = num / 100;
  if (num >= 1000)
  {
    d = num / 1000;
    c -= d*10;
    if ((a-b) == (b-c) == (c-d))
      return true;
    else
      return false;
  }
  else
  {
    if ((a - b) == (b - c))
      return true;
    else return false;
  }
}


doju   7년 전

데이터가 범위에 맞게 들어오는지 검증하는 코드를 제출해 봤으나 이상이 없었습니다.

doju   7년 전

제출하셨던 4953677번 코드를 확인해 봤는데 문제가 없어 보여서 그대로 제출해 봤는데 맞았습니다가 나왔네요.. 채점 오류였을 것 같습니다 ㅠㅠ

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