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

[해커랭크(HackerRank) JAVA 풀이] - Prime Checker

jini:) 2023. 11. 20. 13:54
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Advanced > Prime Checker
 

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

 

 

편집기에 Solution 클래스와 해당 기본 메서드가 제공됩니다. 당신의 임무는 클래스 프라임을 만드는 것입니다. Prime 클래스에는 단일 메서드 checkPrime이 포함되어야 합니다.

편집기의 잠긴 코드는 하나 이상의 정수 인수를 사용하여 checkPrime 메서드를 호출합니다. 코드에서 소수만 인쇄하는 방식으로 checkPrime 메서드를 작성해야 합니다.

편집기에 제공된 코드를 주의 깊게 읽으십시오. 또한 메서드 오버로딩을 사용하지 마십시오!

Hint : 아래 설명으로 인해 이 문제에서 컴파일 시간 오류가 발생할 수 있습니다.

  BufferedReader br=new BufferedReader(new InputStreamReader(in));

이것은 의도적으로 추가된 것이며 오류를 제거할 방법을 찾아야 합니다.

 

Input Format

각각 하나의 정수를 포함하는 다섯 줄의 입력이 있습니다.

 

Output Format

4줄만 출력됩니다. 각 줄에는 Solution 클래스의 기본 메서드에서 checkPrime에 전달된 매개 변수에 따라 소수만 포함됩니다. 소수가 없는 경우 빈 줄을 인쇄해야 합니다.

 

Sample Input

2
1
3
4
5

 

Sample Output

2 
2 
2 3 
2 3 5

 

반응형

 

Code

import java.io.*;
import java.util.*;

class Prime {
    private boolean isPrime(int n) {
        if( n < 2 ) return false;
        if( n < 4 ) return true;
        if( n % 2 == 0 || n % 3 == 0 ) return false;
        for(int i = 5; i * i <= n; i += 6 ) if(n % i == 0 || n % (i + 2) == 0) return false;
        return true;
    }
    public void checkPrime(int... nums) {
        for(int num: nums) {
            if( isPrime(num) ) System.out.printf("%d ", num);
        }
        System.out.println();
    }
}

public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int n1 = Integer.parseInt(br.readLine());
            int n2 = Integer.parseInt(br.readLine());
            int n3 = Integer.parseInt(br.readLine());
            int n4 = Integer.parseInt(br.readLine());
            int n5 = Integer.parseInt(br.readLine());
            Prime ob = new Prime();
            ob.checkPrime(n1);
            ob.checkPrime(n1, n2);
            ob.checkPrime(n1, n2, n3);
            ob.checkPrime(n1, n2, n3, n4, n5);
            // Check for method overloading
            Set<String> methodNames = new HashSet<>();
            boolean overload = false;
            for (java.lang.reflect.Method method : Prime.class.getDeclaredMethods()) {
                String methodName = method.getName();
                if (!methodNames.add(methodName)) {
                    overload = true;
                    break;
                }
            }
            if (overload) {
                throw new Exception("Overloading not allowed");
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

 

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형