'서로 다른' N개의 자연수의 합 S.
최대한 많은 종류를 써야 합니다.
그러면 그냥 1부터 차례대로 다 더하고, 마지막 하나의 값만 정해줄 수 있으면 됩니다.
즉, 1부터 차례대로 더해가다가 최초 S를 넘었을 때 멈추고
그때의 개수 N-1이 정답입니다. 마지막 1개의 값이 넘었으므로 그 직전의 값에서 S가 되기 위한 +@만 해주면 됩니다. 하지만 개수를 구하는 게 목표이니 그저 마지막 N개에서 -1만 해주면 됩니다.
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
long num = Long.valueOf(bfr.readLine());
int result = 0;
long sum = 0;
long tmp = 1;
while(true) {
sum += (tmp++);
result++;
if(sum > num)
break;
}
System.out.println(--result);
bfr.close();
}
}