반응형
이번 문제도 그렇게 어려운 문제는 아닌 것 같습니다.
저는 두 가지 방법으로 풀었습니다.
1. 세 개의 수를 모두 곱하고 난 뒤 String 형으로 형 변환을 해서 다시 배열에 각각 집어 넣었습니다.
그렇게 해서 각 수를 구했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.Scanner; public class Beak2577 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] array = new int[3]; int result = 0; for(int i=0;i<3;i++){ array[i] = sc.nextInt(); } result = array[0] * array[1] * array[2]; String check = Integer.toString(result); // String 형으로 형 변환 char[] number = check.toCharArray(); // 각 배열에 저장 int[] arr_result = new int[number.length]; for(int i=0;i<number.length;i++){ arr_result[number[i]-'0']++; // char형에 -'0'을 하면 int형이 된다. } for(int i=0;i<arr_result.length;i++) System.out.println(arr_result[i]); } } | cs |
그런데 이렇게 하니까 런타임 에러가 납니다.
2. 그냥 나머지를 구하면 됩니다. 이것이 가장 쉽고 깔끔한 것 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.util.Scanner; public class Beak2577 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] array = new int[3]; int[] result_arr = new int[10]; int result = 0; for (int i = 0; i < 3; i++) { array[i] = sc.nextInt(); } result = array[0] * array[1] * array[2]; while(result>0){ result_arr[result%10]++; result/=10; } for (int i = 0; i < result_arr.length; i++) { System.out.println(result_arr[i]); } } } | cs |
이렇게 짜게 되면 코드도 짧고 런타임 에러는 안나게 됩니다.
다 하고 다른 사람과 비교 해본 결과 전부 비슷하게 과제를 해결했습니다.
반응형
사업자 정보 표시
난길샵 | 박현숙 | 경상북도 성주군 월항면 수죽길 98길 | 사업자 등록번호 : 256-07-01668 | TEL : 010-9909-8420 | Mail : skr04@naver.com | 통신판매신고번호 : 제2020-경북성주-52호 | 사이버몰의 이용약관 바로가기
'Project > Algorithm' 카테고리의 다른 글
[백준 알고리즘] 1094문제 (막대기) (2) | 2017.08.07 |
---|---|
[백준 알고리즘] 2455번(지능형 기차) (0) | 2017.08.07 |
[알고리즘] 달팽이 알고리즘 (0) | 2017.08.04 |
[백준 알고리즘] 2490번(윷놀이) (0) | 2017.08.02 |
[백준 알고리즘] 에라토스테네스의 체 (0) | 2017.06.16 |
댓글