전체 글 146

[프로그래머스] K진수에서 소수 개수 구하기 / java

https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 뭐야 쉬운데? 했다가 끝에서 계속 버벅거렸던 문제 ^^ .. 계속 테스트케이스 1에서만 실패가 나서 넘 부글부글...🤯🤯🤯 테스트 케이스 1에서 계속 오류난다면 아래를 확인해보시길.. ! 1. 해당 숫자가 소수인지 아닌지 판별하는 함수에서, 굳이 2부터 n까지 비교할 필요없고, n의 제곱근까지만 비교하면 된다...

Algorithm Study 2022.05.19

JPQL 기본 문법과 기능

JPQL JPQL은 객체지향 쿼리 언어이다. 엔티티 객체를 대상으로 쿼리한다. JPQL 문법 select m from Member m where m.age >18 엔티티는 대문자로, 속성은 소문자로 구분 O (Member, age) JPQL 키워드는 대소문자 구분X ( SELECT, select ) 엔티티 이름 사용, 테이블 이름이 아님! 별칭은 필수(m) TypeQuery : 반환 타입이 명확할 때 사용 Query: 반환 타입이 명확하지 않을 때 사용 query.getResultList() : 결과가 하나 이상일 때 리스트 반환. 결과가 없으면 빈 리스트 반환 query.getSingleResult() : 결과가 정확히 하나일때 단일 객체 반환. 결과 없거나 둘 이상이면 exception 발생 < 파라..

객체지향 쿼리언어 소개 (JPQL / QueryDSL)

JPA는 다양한 쿼리 방법을 지원한다 JPA JPA Criteria : 너무 복잡하여 QueryDSL 사용권장. QueryDSL 네이티브 SQL JDBC API 직접 사용, MyBatis, SprintJdbc Template 함께 사용 JPQL JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다. JPQL은 검색 할때 테이블이 아닌 엔티티 객체를 대상으로 검색한다. SQL은 데이터베이스 테이블을 대상으로 검색. JPQL을 한마디로 정의하면 객체지향 SQL ( 객체지향 쿼리 언어 ) JPQL은 SQL을 추상화해서 특정베이스 SQL에 의존하지 않는다. JPQL을 위처럼 사용하면, 아래와 같이 실행된 SQL을 볼 수 있다 ! 😃 Criteria 문자가 아닌 자바코드로 JPQL을 작성할수 ..

[프로그래머스] 실패율/ java, 내림차순, Map, keySet

https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr * 실패율 = ( 스테이지 도착했으나 아직 클리어 하지 못한 플레이어의 수 ) / 스테이지에 도달한 플레이어의 수 * stages[i] = stages 배열 중 i 인 값의 갯수 / stage 배열 중 i와 같거나 큰 값의 갯수 * 다만 여기서, 주의해야할 점은 도달한 유저가 없을때 실패율이 0 이라는 점!!! 스테이지에 도달한 유저가 없는 경우 해당 스테이지의..

Algorithm Study 2022.05.17

Comparator/ Comparable / Sort / 내림차순

sort 메소드를 통해 내림차순에 대해서 알아보다가 여기까지왔다.. Arrays.sort(배열이름) Collections.sort(리스트이름) 위의 두 배열은 오름차순이 기본이다. 그런데 오름차순이 아닌 내림차순이 하고싶다면? Comparable / Comparator * Comparable : 기본 정렬기준을 구현하는데 사용 (ex. 오름차순 기본의 정렬 사용. sort() ) - compareTo(Object o) * Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용 -> 내림차순 정렬 혹은 다른기준으로 정렬할 때 사용 - compare(o1, o2) compare()과 compareTo()는 두 객체를 비교한다는 같은 기능을 목적으로 고안된 것. : 비교하는 객체가 같..

값 타입 ( 기본값, 임베디드 타입 @Embedded, 값 타입 컬렉션@CollectionTable )

JPA의 데이터 타입은 크게 2가지로 분류됨 -> 엔티티타입 / 값 타입 엔티티타입 식별자 O @Entity로 정의하는 객체 생명주기 관리 데이터가 변해도 식별자로 지속해서 추적 가능 ( 공유 가능) ex. 회원 엔티티의 키 또는 나이 값을 변경해도 식별자로 인식 가능 값 타입 식별자 X int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 생명 주기를 엔티티에 의존 식별자가 없고 값만 있으므로 변경시 추적 불가 (공유하지 않는 것이 안전) ex. 숫자 100을 200으로 변경하면 완전히 다른값으로 인식 1. 값 타입은 정말 값 타입이라 판단될 때만 사용 2. 엔티티와 값 타입을 혼동해서 엔티티 값으로 만들면 안됨. 3. 식별자가 필요하고, 지속적으로 값을 추적/변경 ..

프록시와 연관계/ 즉시로딩: EAGER / 지연로딩: LAZY / 영속성전이:cascade/ 고아객체: orphanRemoval

프록시 * Member를 조회할 때, 매번 Team도 함께 조회해야 될까? em.find() : 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference() : 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 특징 실제 클래스를 상속 받아서 만들어진다. 실제 클래스와 겉 모양이 같다. 사용하는 입장에서 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 된다. 프록시 객체는 실제 객체의 참조(target)을 보관한다. 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출한다. 프록시 객체의 초기화 프록시 객체는 처음 사용할 때 한번만 초기화 프록시 객체를 초기화 할 때, 프록시 객체가 실제 엔티티로 바뀌는 것은 아니다. 초기화되면 프록시 객체를 통해서 실제 엔티티에 ..

[programmers] 소수만들기 /java

https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 혼자오바해서 재귀로 푼 듯 레벨1인데 뭔가 재귀로 푸는게 이상했다 ㅎㅎ 3개의 임의의 수를 고를때 , 재귀로 총 3개를 찾는방법으로 풀었는데 for문 3개로 고를 수 있다. 이 방법 외워두기 첫번째는 내가 제출한 방법. 1) 재귀로 임의의 숫자 3개를 구한 후, 2) 3개를 다 고르면 소수인지 확인 후, 결과값을 더했다. 깔끔한 소스 보면서 ..

카테고리 없음 2022.05.11

[프로그래머스] 음양더하기/ java

https://programmers.co.kr/learn/courses/30/lessons/76501?language=java 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 너무 간단한 입출력 문제였다..

Algorithm Study 2022.05.11