728x90
반응형

자바 134

[ JAVA Spring boot / 자바 스프링 부트 ] JPA 쿼리 메서드 명명 규칙

JPA(Java Persistence API)란?자바를 사용하는 응용 프로그램에서 관계형 데이터베이스의 관리를 위한 인터페이스 및 기능을 제공하는 자바 API이다.(JPA에 대한 자세한 내용은 추후 다른 게시글 URL 첨부 예정) JPA의 특징: SQL 문장을 작성하지 않고도 JPA Query method naming을 통해 JPQL쿼리를 수행하여 데이터베이스를 관리할 수 있다.  > 이때, 메서드를 아무렇게나 작성하면 안 되고 정해진 규칙에 의해 작성해야 한다.: CrudRepository에 사전 정의된 메서드 사용 시, 따로 Repository interface에 메서드를 선언하지 않아도 사용할 수 있다. 쿼리 메서드를 조합하는 방법은 다음과 같다기본 동작 메서드 + 반환 데이터 + By + 검색 조..

프로젝트 2024.10.09

[JAVA / 자바] 람다 표현식 Lambda Expression

람다 표현식이 등장하게 된 배경초기 Java에서는 함수형 프로그래밍(Functional Programming)을 이용하여 코드를 작성하기 매우 척박한 환경이었습니다. 함수/메서드를 파라미터로 전달하기 위해서는 익명 클래스(Anonymous Class)를 사용하는 등의 방법을 사용해야만 했고 이에 따라서 코드가 길어짐과 더불어 가독성은 함수형 프로그래밍을 하기 위해 타협해야 하는 상황이 벌어졌습니다. 따라서, Java에서는 이와 같은 단점을 보완하기 위해 Java 8부터 람다 표현식이라는 새로운 패러다임을 도입함으로써 문제를 해결하였습니다. 람다 표현식 사용 방법람다 표현식의 대표적인 형태는 다음과 같습니다.(변수타입 변수명) -> { return 반환값; }일반적인 함수/메서드의 형태와 달리 람다 표현식..

[JAVA / 자바] 함수형 프로그래밍

함수란,어떠한 input(입력)을 받아서 output(출력)을 하는 것이라고 쉽게 표현해 볼 수 있다. 따라서 함수는 동사와 같은 역할을 하기 때문에 함수의 이름을 정할 때에도 동사의 형태로 네이밍 하는 것을 알 수 있다. 반면에 객체는,어떠한 것에 대한 상태 및 관련된 동작에 대한 것을 표현한 것이다. 따라서, 객체의 이름을 정할 때는 명사 형태로 네이밍을 한다는 것을 확인해 볼 수 있을 것이다. 함수와 객체에 대한 차이를 서두에서 다룬 이유는 바로 우리가 흔히 알고 있는 객체지향 프로그래밍(OOP, Objected Oriented Programming)과의 비교를 통해서 함수형 프로그래밍(Functional Programming)을 설명하기 위해서이다. 객체지향 프로그래밍(이후 OOP)에서는 명령형 ..

[JAVA / 자바] 백준(BOJ) 11053번 - 가장 긴 증가하는 부분 수열 (실버 2)

문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50}인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50}이고, 길이는 4이다. 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ A_i ≤ 1,000) 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 문제 접근 방법 이번 문제는 다이나믹 프로그래밍(Dynamic Programming)으로 풀 수 있는 문제이다. 두 번째 줄에 수열을 입력받아 arr [] 배열에 저장한다. 입력을 저장한 arr배열을 ..

[JAVA / 자바] 백준(BOJ) 1149번 - RGB거리 (실버 1)

문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1) 번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다..

[JAVA / 자바] 백준(BOJ) 1920번 - 수 찾기 (실버 4)

문제 N개의 정수 A [1], A [2], …, A [N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A [1], A [2], …, A [N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 문제 접근 방법 이번 문제는 원소를 저장하고 해당 원소의 저장 유무를 묻는 문제이다. 따라서 중복 여부, 순서가 상관이 없고 저장..

[JAVA / 자바] Queue(큐) 클래스 사용법 및 함수(Method) 정리

Queue : 선입 선출(FIFO: First In First Out)의 성격을 지닌 자료구조 [자료구조] 큐(Queue)에 대한 설명글 [자료구조] 큐(Queue) 큐 (Queue) - 스택과 마찬가지로 삽입과 삭제의 위치가 제한된 유한 순서 리스트 - 선입선출 구조(FIFO, First-In-First-Out) : 삽입 순으로 나열되어 가장 먼저 삽입한 원소가 가장 먼저 삭제된다. 삭제 kwin0825.tistory.com 선언 import java.util.Queue; import java.util.LinkedList; Queue 변수명 = new LinkedList(); ㄴ 위 같은 경우는 자료형에 넣은 자료형만 삽입, 삭제 가능 Queue 변수명 = new LinkedList(); ㄴ 위 같은 ..

[JAVA / 자바] 백준(BOJ) 11727번 - 2xn 타일링 2 (실버 3)

문제 2 ×n 직사각형을 1 × 2, 2 ×1과 2 × 2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2 ×17 직사각형을 채운 한 가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2 ×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 문제 접근 방법 이번 문제는 이전 [JAVA / 자바] 백준 11726번 - 2xn 타일링 문제와 많이 동일하다. [JAVA / 자바] 백준 11726번 - 2xn 타일링 문제 2 ×n 크기의 직사각형을 1 × 2, 2 ×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2 × 5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 ..

[JAVA / 자바] 백준(BOJ) 11399번 - ATM (실버 3)

문제 인하 은행에는 ATM이 1대밖에 없다. 지금 이 ATM 앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는 데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분 만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게..

[JAVA / 자바] 백준(BOJ) 11047번 - 동전 0 (실버 3)

문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ A_i ≤ 1,000,000, A_1 = 1, i ≥ 2인 경우에 A_i는 A_(i-1)의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 문제 접근 방법 이번 문제는 정말 단순하게 생각해주면 된다. 동전의 입력이 가치의 오름차순으로 이미 정렬되어서 들어오기 때문에 배열을 정렬해 줄 필요도 없..

728x90
반응형