코린이의 소소한 공부노트

[LeetCode/Easy] 2614. Prime In Diagonal 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2614. Prime In Diagonal

무지맘 2023. 5. 8. 16:27

1. Input

1) int[][] nums

 

2. Output

1) nums의 두 대각선 위에 있는 소수 중 가장 큰 것을 반환

- 소수: 약수의 개수가 2개인 자연수

2) 대각선에 소수가 없다면 0을 반환

 

3. Constraint

1) 1 <= nums.length <= 300

2) nums.length == nums[i[.length

3) 1 <= nums[i][j] <= 4*10^6

4) 대각선은 nums[i][i]nums[i][nums.length - i - 1] 형태로 나타낼 수 있다.

 

4. Example

Input: nums = [[1,2,3],[5,6,7],[9,10,11]] -> Output: 11

설명: 대각선 위의 수는 1,3,6,9,11이고, 이 중 가장 큰 소수는 11이다.

 

5. Code

1) 첫 코드(2023/05/08)

class Solution {
    public int diagonalPrime(int[][] nums) {
        int answer = 0;
        for(int i=0 ; i<nums.length ; i++){
            if(isPrime(nums[i][i]))
                    answer = Math.max(answer, nums[i][i]);
            if(isPrime(nums[i][nums[i].length-1-i]))
                answer = Math.max(answer, nums[i][nums[i].length-1-i]);
        }
        return answer;
    }

    static boolean isPrime(int n){
        boolean answer = n>1;
        for(int i=2 ; i<=Math.sqrt(n) && answer ; i++)
            if(n%i==0)
                answer = false;
        return answer;
    }
}