2023.05.27.SAT

ronglong·2023년 5월 27일
0

[ 백준 ]

  • 1929번 소수 구하기
    : 1도 소수라고 했다가 틀림,,ㅎ★
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언
        StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());
        int M = Integer.parseInt(stringTokenizer.nextToken());
        int N = Integer.parseInt(stringTokenizer.nextToken());

        for (int i = M; i <= N; i++) {
            if (isPrime(i)) System.out.println(i);
        }
    }

    public static boolean isPrime(int num) {
        if(num==1) return false;
        if(num>3){
            for (int i = 2; i <=Math.sqrt(num); i++) {
                if (num % i == 0) return false;
            }
        }
        return true;
    }
}
  • 1747번 소수&팰린드롬
    : toCharArray()로 char[] 배열로 만들어서 비교하면 더 빠를 것 같다.
    자바 입문 초기에 배운 함수가 charAt()이라 그런지 습관적으로 쓰게 됨,,
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //선언
        long N = Long.parseLong(br.readLine());
        long num = N;

        while(true){
            if(num >= N && isPalindrome(num) && isPrime(num)) {
                System.out.println(num);
                break;
            }
            else num++;
        }
    }

    public static boolean isPrime(long num) {
        if (num == 1) return false;
        if (num > 3) {
            for (int i = 2; i <= Math.sqrt(num); i++) {
                if (num % i == 0) return false;
            }
        }
        return true;
    }

    public static boolean isPalindrome(long num) {
        String str = String.valueOf(num);
        int left = 0;
        int right = str.length()-1;
        while(left<=right){
            if(str.charAt(left) == str.charAt(right)){
                left++;
                right--;
            }
            else return false;
        }
        return true;
    }
}

[ 프로그래머스 ]

  • K번째수
import java.util.*;
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        for(int i=0; i<commands.length; i++){
            int[] arr = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]);
            Arrays.sort(arr);
            answer[i] = arr[commands[i][2]-1];
        }
        return answer;
    }
}

[ 유어클래스 다시 읽기 ]

  • section3. JPA 기반 데이터 액세스 계층
    • JPA 구현체 : Hibernate ORM, EclipseLink, DataNucleus 등
      -> 내부적으로 JDBC API 이용
    • 영속성 컨텍스트(Persistence Context)
      • 1차 캐시 + 쓰기 지연 SQL 저장소
      • tx.commit()해야 저장소의 쿼리가 실행되어(날아가서) 테이블에 반영됨.
        -> 내부적으로 em.flush() 실행. 테이블 반영.
    • Spring Data JDBC는 단방향 연관관계만 지원.
      JPA는 단방향,양방향 모두 지원
    • 객체 그래프 탐색 : 객체를 통해 다른 객체 정보 찾기
    • 다대일 단방향 매핑이 기본(테이블의 외래키 생각하기)
    • Spring Data JPA : JPA 구현체를 쉽게 사용할 수 있도록 하는 모듈

0개의 댓글