https://programmers.co.kr/learn/courses/30/lessons/92335
뭐야 쉬운데? 했다가 끝에서 계속 버벅거렸던 문제 ^^ ..
계속 테스트케이스 1에서만 실패가 나서 넘 부글부글...🤯🤯🤯
테스트 케이스 1에서 계속 오류난다면 아래를 확인해보시길.. !
1. 해당 숫자가 소수인지 아닌지 판별하는 함수에서,
굳이 2부터 n까지 비교할 필요없고, n의 제곱근까지만 비교하면 된다. -> Math.sqrt(n) : 제곱근 구하는 함수
그리구, 파라미터와 계산할때 Long으로 계산할것.
추가로 제곱하는 함수 : Math.pow(i,n) 숫자 i에 n제곱
ex.) 36 = 1,2,3,6,12,18,36. -> 36의 경우 6 까지만 소수인지 아닌지만 판별해 보면 된다.
숫자 n이 소수인지 구별하는 함수에서는, 2 부터 n의 제곱근까지만 확인해보면 된다.
Math.sqrt(n)
Math.pow(i,n)
제곱근 구하는 함수 헷갈려서 찾아봤는데, 다시 복습하려면 정수 제곱근 문제를 다시 풀어보자!
https://programmers.co.kr/learn/courses/30/lessons/12934
아래는 내가 제출한 풀이 방법.
1. 숫자 n을 k진수로 변환하는 함수 -> changeNum(int , int k)
2. k진수로 변환후 0 아닌 숫자 판별 -> split 함수 사용, 이때 0000 이 포함되어있는 경우 있을 수 있으므로 예외 구별해야함
- 나 같은 경우는 isEmpty() 로 판단하였으나, length==0 으로 확인하여도 됨.
3. 소수인지 아닌지 확인하는 함수 -> isPrime(Long n)
다 제출하고나니 허무할 정도로 간단한 아래 코드가 있었따 ^^^^^^...
난 한 80줄 되는데 20줄로 짜셨네 ~ 🤭🤭
그 이유를 살펴보니, 나는 n을 k 진수로 변경하는 함수를 따로 구현했는데,
Integer.toString(int n, int k) 처럼 내장된 함수를 쓸 수 있었다. ( 전 혀 몰랐음)
또 한번 이마를 탁 치고 갑니다.!
오늘도 화이팅 💪🏻
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (0) | 2022.05.21 |
---|---|
[프로그래머스] 정수 제곱근 판별 / java (0) | 2022.05.19 |
[프로그래머스] 실패율/ java, 내림차순, Map, keySet (0) | 2022.05.17 |
[프로그래머스] K번째 수 (0) | 2022.05.11 |
[프로그래머스] 음양더하기/ java (0) | 2022.05.11 |