고구마와 감자
Amor DevFati(아모르 개발파티)
고구마와 감자
전체 방문자
오늘
어제
  • 분류 전체보기
    • 스프링
    • 알고리즘
      • 백준
      • 프로그래머스
      • 인프런_자바코테강의
      • 리트코드
      • 해커랭크
      • 코드업
      • 이것저것
    • 자바
    • GIT
    • 파이썬
    • 개발이론
    • JPA
    • 김영한 강의
      • 모든 개발자를 위한 HTTP 웹 기본 지식
      • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
      • 스프링 핵심 원리 - 기본편
    • 일기 및 아무말 적기

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 2857
  • 14656
  • 11023
  • 2921
  • 백준
  • 5361
  • 꼬리를 무는 숫자 나열
  • 2의 제곱인가
  • 5988
  • 1598
  • 10409
  • 남욱이의 닭장
  • Mini Fantasy War
  • 11966
  • 홀수일까 짝수일까
  • 고려대학교에는 공식 와인이 있다
  • 조교는 새디스트야!!
  • 16673
  • 전투 드로이드 가격
  • 더하기 3

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
고구마와 감자

Amor DevFati(아모르 개발파티)

인프런 6. 뒤집은 소수  (Java)
알고리즘/인프런_자바코테강의

인프런 6. 뒤집은 소수 (Java)

2022. 4. 20. 20:24

 

Solution 1 (내 풀이)

단순히 문자 뒤집고 정수 변환 후에 소수 판단 메서드로 확인하였다. 

소수판단메서드에서는 정수의 제곱근까지만 나뉘어지는지를 시도하여 횟수를 줄일 수 있다. 

private void solution(int n, String[] s) {

        StringBuilder sb = new StringBuilder();
        for (String x : s) {
            StringBuilder temp = new StringBuilder(x);
            String reversed = temp.reverse().toString();
            int reversedInt = Integer.parseInt(reversed);
            if (isPrimeNumber(reversedInt)) sb.append(reversedInt).append(" ");
        }
        System.out.println(sb);
    }

    public boolean isPrimeNumber(int x) {
        if (x == 1) return false;
        for (int i = 2; i <= (int) Math.sqrt(x); i++) {
            if (x % i == 0) return false;
        }
        return true;
    }

Solution 2 (강사님 풀이)

int를 1의 자리부터 구해서 다른 변수에 계속 10을 곱한 후 1의 자리를 넣어주는 방식으로 거꾸로 된 수를 구하고 

소수 판단을 한다. 

private ArrayList<Integer> solution(int n, int[] arr) {
        ArrayList<Integer> answer = new ArrayList<>();
        for (int i = 0; i<n; i++) {
            int tmp = arr[i];
            int res = 0;
            while(tmp > 0) {
                int t = tmp%10; // 1의 자리 숫자 구하고
                res = res*10 + t; // 1의 자리 숫자를 새로운 숫자에 넣어준다.
                tmp = tmp/10; // 1의 자리를 제한 새로운 tmp로 위 과정을 반복한다.
            }
            if (isPrime(res)) answer.add(res);

        }
        return answer;
    }

    public boolean isPrime(int num) {
        if (num ==1) return false;
        for (int i = 2; i < num; i++) {
            if (num % i == 0) return false;
        }

        return true;
    }

 

'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글

인프런 8. 등수구하기(Java)  (0) 2022.04.21
인프런 7. 점수계산 (Java)  (0) 2022.04.21
인프런 5.소수(에라토스테네스 체)_Java  (0) 2022.04.20
인프런 4. 피보나치 수열(Java)  (0) 2022.04.20
인프런 3. 가위 바위 보 (Java)  (0) 2022.04.20
    '알고리즘/인프런_자바코테강의' 카테고리의 다른 글
    • 인프런 8. 등수구하기(Java)
    • 인프런 7. 점수계산 (Java)
    • 인프런 5.소수(에라토스테네스 체)_Java
    • 인프런 4. 피보나치 수열(Java)
    고구마와 감자
    고구마와 감자
    Amor DevFati는 김연자-Amor Fati에 Development(개발)의 Dev 를 첨가하여 만든 이름

    티스토리툴바