내일배움캠프 50일차 TIL _ 11주 2일차

2024. 6. 25. 20:43TIL Java

 

  • 오늘 있었던 일
    • 팀과제
    • 알고리즘

SPRIONG

  • 스프링 정리

 

알고리즘 문제 풀기

 

     ● k진수에서 소수 개수 구하기

더보기

● k진수에서 소수 개수 구하기//링크

class Solution {
    public int solution(int n, int k) {
        int answer = 0;
        String[] p = Integer.toString(n, k).split("0");
        for(String s : p) if(!s.equals("1") && !s.isEmpty()) {
            int v = (int) Math.sqrt(Double.parseDouble(s));
            boolean vv = true;
            for(int i = 2 ; i <= v ; i++) {
                if(Double.parseDouble(s) % i == 0){
                    vv = false;
                    break;
                }
            }
            if(vv) answer++;
        }
        return answer;
    }
}
  • 맨 마지막의 2문제가 틀렸다고 한다.
    • 문제 지문에
      • 정수 n과 k가 매개변수로 주어집니다. n을 k진수로 바꿨을 때, 변환된 수 안에서 찾을 수 있는 위 조건에 맞는 소수의 개수를 return 
    •  
      • 소수라고 대놓고 써있는데 소수를 체크하는 로직을 쓰지 않았다.
      • 체크하는 문을 넣으니 바로 통과했다...
  • 밑은 다른 사람의 풀이
  • class Solution {
        public int solution(int n, int k) {
    
            int ans = 0;
            String temp[] = Integer.toString(n, k).split("0");
    
            Loop : for(String t : temp) {
                if(t.length() == 0) continue;
                long a = Long.parseLong(t);
                if(a == 1) continue;
                for(int i=2; i<=Math.sqrt(a); i++)
                    if(a%i == 0) continue Loop;
    
                ans++;
            }
            return ans;
        }
    }
  • 거기서 거기네

 


당일 회고

  • 벌써 50일차... 하지만 뭔가 제대로 한게 없는거 같아서 불안하다