728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Exception Handling > Java Exception Handling
계산기를 구현하여 숫자의 거듭제곱을 계산해야 합니다. 단일 메서드 long power(int, int)로 구성된 MyCalculator 클래스를 만듭니다. 이 방법은 두 개의 정수 n과 p를 매개변수로 사용하여 nᴾ을 찾습니다. n 또는 p가 음수이면 메서드는 "n 또는 p는 음수가 아니어야 합니다"라는 예외를 throw 해야 합니다. 또한 n과 p가 모두 0이면 메서드는 "n과 p는 0이 아니어야 합니다."라는 예외를 throw 해야 합니다.
예를 들어, -4 및 -5는 java.lang.Exception이 발생합니다. n 또는 p는 음수가 아니어야 합니다.
클래스 MyCalculator에서 기능 power를 완료하고 위에서 설명한 대로 전원 작업 또는 적절한 예외 후에 적절한 결과를 반환합니다.
Input Format
입력의 각 줄에는 두 개의 정수 n과 p가 포함됩니다. 편집기의 잠긴 스텁 코드는 입력을 읽고 값을 매개변수로 메소드에 보냅니다.
Constraints
- -10 ≤ n ≤ 10
- -10 ≤ p ≤ 10
Output Format
출력의 각 줄에는 n과 p가 모두 양수인 경우 결과 nᴾ가 포함됩니다. n 또는 p가 음수이면 출력에는 "n 및 p는 음수가 아니어야 함"이 포함됩니다. n과 p가 모두 0이면 출력에는 "n과 p는 0이 아니어야 합니다."가 포함됩니다. 이것은 편집기에서 잠긴 스텁 코드에 의해 출력됩니다.
Sample Input
3 5
2 4
0 0
-1 -2
-1 3
Sample Output
243
16
java.lang.Exception: n and p should not be zero.
java.lang.Exception: n or p should not be negative.
java.lang.Exception: n or p should not be negative.
Explanation
- 처음 두 경우에서 n과 p는 모두 양수입니다. 따라서 power 함수는 답을 올바르게 반환합니다.
- 세 번째 경우에는 n과 p가 모두 0입니다. 따라서 "n과 p는 0이 아니어야 합니다."라는 예외가 인쇄됩니다.
- 마지막 두 경우에서 n과 p 중 적어도 하나는 음수입니다. 따라서 "n 또는 p는 음수가 아니어야 합니다."라는 예외가 이 두 경우에 대해 인쇄됩니다.
Code
import java.util.Scanner;
class MyCalculator {
/*
* Create the method long power(int, int) here.
*/
int power(int n, int p) throws Exception {
if( n<0 || p<0 ) {
throw new Exception("n or p should not be negative.");
}
if( n==0 && p==0 ) {
throw new Exception("n and p should not be zero.");
}
return (int) Math.pow(n,p);
}
}
public class Solution {
public static final MyCalculator my_calculator = new MyCalculator();
public static final Scanner in = new Scanner(System.in);
public static void main(String[] args) {
while (in .hasNextInt()) {
int n = in .nextInt();
int p = in .nextInt();
try {
System.out.println(my_calculator.power(n, p));
} catch (Exception e) {
System.out.println(e);
}
}
}
}
throw new Exception()
새로운 예외 객체를 생성하고 해당 예외를 현재 메소드에서 발생
public void myMethod() throws Exception { // 어떤 조건을 검사하고, 예외를 발생. if (myCondition) { throw new Exception("이 메소드에서 예외 발생"); } }
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
[해커랭크(HackerRank) JAVA 풀이] - Java Reflection - Attributes (0) | 2023.11.07 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java Varargs - Simple Addition (0) | 2023.11.06 |
[해커랭크(HackerRank) JAVA 풀이] - Java Exception Handling (Try-catch) (0) | 2023.11.01 |
[해커랭크(HackerRank) JAVA 풀이] - Java Iterator (1) | 2023.10.31 |
[해커랭크(HackerRank) JAVA 풀이] - Java Instanceof keyword (0) | 2023.10.30 |