[문제]
1.
[설명]
BufferedReader를 이용해 숫자를 입력받는다.
첫 번째 for문에서 StringBuilder의 append 함수를 이용해 약수를 추가한다.
sb를 StringTokenizer를 이용해 약수를 토큰으로 분리한다.(StringTokenizer은 String을 인자로 받으므로 sb.toString()으로 형변환을 해줘야 한다.)
(배열의 크기가 정해지지 않았으므로 첫 번째 for문을 거쳐야 한다.)
두 번째 for문을 이용해 약수 하나씩 배열에 집어넣고 배열의 원소값을 합하여 sum에 대입한다.
만약 sum과 num이 같으면 세 번째 for문을 이용해 출력문에 맞게 출력한다.
2.
[설명]
내 코드가 좀 긴 것 같아서 구글링 해보았더니 더 간결한 방법이 있었다.
내가 생성한 배열을 약수의 개수에 맞게 생성했지만, 이 방법은 num개의 크기만큼 생성한 후 약수의 개수 범위 내에서만 사용한다. 새로운 변수를 작성하지 않고 index 변수를 이용해 배열에 약수를 대입하고 약수의 개수를 센다.
시간은 두 번째가 더 빠르다.
더 좋은 방법이 있거나 잘못된 내용이 있으면 알려주세요!
'백준 > JAVA' 카테고리의 다른 글
[JAVA] 백준_11650 (0) | 2023.07.29 |
---|---|
[JAVA] 백준_2751 (0) | 2023.07.28 |
[JAVA] 백준_2798 (0) | 2023.07.25 |
[JAVA] 백준_9063 (0) | 2023.07.24 |
[JAVA] 백준_2581 (0) | 2023.07.19 |