CodeWars 서른 두 번째 문제

Updated:

Is my friend cheating?

public static List<long[]> removNb(long n) {
    List<long[]> res = new ArrayList<long[]>();

    long sum = (n*(n+1))/2 +1; 

    for(long i=3 ; i < n; i++) {
        if(sum % i == 0 && (sum / i <= n)) {
            res.add(new long[] {i-1, sum/i -1});
        }
    }

    return res;
}
  • 이번 문제는 테스트 예제의 1000003에서 걸렸다.
  • 나는 문제 해석했을 때 최초로 나오는 쌍에 대해서만 출력하는줄 알았다.
  • 그러나 1000003 처럼 여러개가 나오는 값들에 대해서도 다 출력해야 했다.
  • 이 부분이 이 문제의 핵심인 것 같다.
  • 권태형도 나랑 같은 실수했다. 기분이 좋다.