https://www.acmicpc.net/problem/11057 해설31%쯤에 오답으로 처리가 됐다.. 분명 로직상으로는 맞다고 생각이 드는데... 이유를 모르겠어서 반례 케이스를 찾아봤다. 입력으로 n에 500을 넣으니 음수가 출력이 되고 있었다...?분명 10007을 나누어 주었기 때문에 오버플로우가 발생하지 않을 것으로 생각했다. 오버 플로우를 해결하기 위해 int -> long으로도 해보았으나 똑같이 예외가 발생해서 BigInteger를 사용했다.마지막에 값을 출력할 때만 BigInteger를 사용하면 된다. dp는 풀 때마다 느끼지만 직접 그려보면서 규칙을 찾아야하는 것 같다. ex) 3자리 수1xx : 첫번째 자리에 1이 들어가므로 2번째 자리에 1 ~ 9가 들어갈 수 있다.2xx : 첫번..
문제 https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 언어 자바 JAVA 로직 입력 30의 배수인 가장 큰 값을 찾아야 하므로 int 타입의 배열에 값을 저장하고 내림차순 정렬을 해줍니다. String input = br.readLine(); Integer[] arr = new Integer[input.length()]; for (int i = 0; i < arr.length; i++) { arr[i] = input.charAt(i) - '0';..