10986번 - 나머지 합
주어진 숫자 N크기의 배열의 구간합을 M으로 나눴을때 나머지가 0이되는 경우의 수를 구하는 문제입니다.
책으로 공부하고 풀고, 구글링해서 다른분들 것도 보았습니다. 변수명,정수의 타입(저는 int지만 다른분은 long) 말고는
다른 부분을 못 찾겠는데 제꺼는 ArrayIndexOutofBounds가 나오더라고요.
잘못된 부분 찾다찾다 못찾아서 질문올립니다. ㅠㅠ
sum[i] 에 더하는 과정에서 int범위를 넘어가는 경우가 있을 겁니다.
저는 long sum 이라는 변수에 더해주고
그 나머지를 구해서
sum += Integer.parseInt(st.nextToken()); sum %= M; remain[(int) sum]++; 이런식으로 하면 index가 터지지않을겁니다
감사합니다 long으로 바꾸니 됩니다. test case 범위가 커서 정수타입이 int 범위를 훨씬 넘어서는게 문제였습니다..
댓글을 작성하려면 로그인해야 합니다.
ygs3004 1년 전
주어진 숫자 N크기의 배열의 구간합을 M으로 나눴을때 나머지가 0이되는 경우의 수를 구하는 문제입니다.
책으로 공부하고 풀고, 구글링해서 다른분들 것도 보았습니다. 변수명,정수의 타입(저는 int지만 다른분은 long) 말고는
다른 부분을 못 찾겠는데 제꺼는 ArrayIndexOutofBounds가 나오더라고요.
잘못된 부분 찾다찾다 못찾아서 질문올립니다. ㅠㅠ