스터디사이트 : https://www.hackerrank.com
JAVA Basic : 인터페이스
※ 조건
AdvancedArithmetic 인터페이스를 구현하는 Calculator 클래스를 코딩하라.
divisorSum() 메소드의 구현은
- 반드시 public이여야 한다.
- 파라미터 타입은 int n 이다.
- 모든 제수의 합을 리턴해야 한다.
클래스 정의부분에 접근지정자를 사용하면 안된다.
현재 파일 안의 다른 클래스에 의해 접근이 될 수 있게 접근지정자 public을 메서드 정의부분 전에 사용해야 한다.
1 <= n <= 1000
※ 주어진 코드
: 아래 표시된 영역 안에서만 코딩 할 것.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | interface AdvancedArithmetic{ int divisorSum(int n); } /* 코딩 영역 */ class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); scan.close(); AdvancedArithmetic myCalculator = new Calculator(); int sum = myCalculator.divisorSum(n); System.out.println("I implemented: " + myCalculator.getClass().getInterfaces()[0].getName() ); System.out.println(sum); } } | cs |
입력
6 ← 6의 약수 : 1, 2, 3, 6
출력
I implemented: AdvancedArithmetic
12 ← 6의 약수의 합 : 1 + 2 + 3 + 6 = 12
디버깅 1
입력된 int값의 약수를 구하고, 약수의 총합을 구하여 출력을 하는 것이다.
약수를 구함과 동시에 약수의 총합을 구하는 변수에 더해야 할 것 같다.
변수정의 :
int cnt, sum
main메소드로부터 입력받는 변수 n
코딩 :
cnt → 1씩 증가 cnt++
num 나누기 1
num 나누기 2
num 나누기 3
...
if ( num % n == 0 )
sum = sum + n
코딩연습 1
| |||
결과 : n : 6 before]cnt : 0 while cnt=1] sum : 1 while cnt=2] sum : 3 while cnt=3] sum : 6 while cnt=6] sum : 12 after]cnt : 7 sum : 12 I implemented: AdvancedArithmetic 12 |
결과
| |||
결과 : I implemented: AdvancedArithmetic 12 |
다른 사람이 한 코딩
필자는 while, 이 사람은 for
| |||
-- |
'JAVA > JAVA Basic' 카테고리의 다른 글
JAVA Basic : 중첩 로직 (0) | 2016.10.02 |
---|---|
JAVA Basic : 제네릭 (0) | 2016.07.27 |
JAVA Basic : 예외처리 - throw (0) | 2016.07.17 |
JAVA Basic : 예외 - String과 Integer (0) | 2016.07.15 |
JAVA Basic : 두 수의 차의 절대값 범위 중 최대값 구하기 (0) | 2016.07.13 |