> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java Exception Handling

jini:) 2023. 11. 2. 08:52
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Exception Handling > Java Exception Handling
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

 

계산기를 구현하여 숫자의 거듭제곱을 계산해야 합니다. 단일 메서드 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
반응형