일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이분탐색
- 이중우선순위큐 java
- ansi sql 장점
- DFS
- 개발자 면접 준비
- 이중우선순위큐 자바
- CJ DBASE&
- Gradle
- SQL
- DP
- 프로그래머스 이중우선순위큐
- 백트래킹
- 프로그래머스 이중우선순위큐 java
- 면접 필수 질문
- 그리디
- Spring Boot
- JPA
- BFS
- Java
- 프로그래머스 이중우선순위큐 자바
- ansi sql 단점
- DBASE&
- 위상정렬
- IT 면접 준비
- oracle ansi
- 디베이스앤
- 백준
- 디베이스앤 인턴 후기
- 프로그래머스
- oracle ansi sql
- Today
- Total
목록전체 글 (115)
쉬운 프로그래밍
www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 이분 탐색 문제이다. right값을 통나무중에서 가장 긴 통나무로 초기화 해준 후 m에 가장 근접하는 값을 찾아주면 된다. 맞왜틀..이 계속 나왔는데 뭔지 보니까 통나무의 길이가 최대 10억까지 들어갈 수 있으므로 구하는 과정에서 int값을 넘어가기 때문이였다. 단위!!! 한번씩 꼭 확인하는 습관을 들여야겠다. 소스코드 import java.io.BufferedReader..
www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net 이분 탐색의 기초적인? 문제인것 같다. 이분 탐색 알고리즘의 개념이 제대로 잡혀있지 않았던 상태여서 풀이를 하는데 오래걸렸다. 각 부서별로 예산이 주어지고, 예산이 부족한 경우에 상한선을 정해서 상한선을 초과하는 예산을 요구하는 부서는 상한선 까지만 예산을 부여한다. 이 상한선을 찾기 위해 그냥 완탐을 돌려버리면 시간초과가 뜨기 때문에 이분 탐색이 필요하다. start를 0, end를 최대 예산으로 설정하..
각설하고 본론부터 말하면 @ManyToMany 관계는 사용하지 않는 것이 좋다고 한다. RDBMS는 정규화된 테이블 2개로 N:M 관계를 표현할 수 없다. 그럼 어떤 방식으로 N:M 관계를 다뤄야할까? 바로 조인 테이블을 추가해서 @OneToMany, @ManyToOne 관계를 통해야한다. 코드를 통해 이해해보자. # Product Entity @Entity public class Product { @OneToMany(mappedBy = "product") private List CategoryProducts = new ArrayList(); ... } # Category Entity @Entity public class Category { @OneToMany(mappedBy = "category") p..
Cascade란? cascade는 @ManyToOne이나 @OneToMany에 들어갈 수 있는 옵션이다. 트랜잭션이 일어날 때 Entity 변화를 연관관계를 가진 Entity에 전파시키는 것을 목적으로 한다. Entity 상태란? 1. Transient : JPA가 알지 못하는 상태를 의미한다. 즉 객체를 생성하거나 변경하여도 JPA가 그 객체를 인지하지 못하고 있는 상태를 의미한다. 2. Persistent : JPA가 관리중인 상태를 의미한다. Persistent 상태가 되더라도 바로 Insert가 발생해서 데이터베이스에 저장하는 것이 아닌, Persistent에서 관리하고 있던 객체가 데이터베이스에 넣는 시점에 데이터를 저장함 (1차 캐싱, Dirty Checking, Write Behind 등 기..
www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 그리디 보다는 문자열 파싱하는게 주된 문제인 것 같다. 풀이과정을 요약하자면, 55-50+40 이라는 문자열에 임의로 괄호를 씌워 최소값을 만드는 문제이다. -> 55-(50+40) 최소값을 구하기 위해서는 '큰 숫자를 빼야한다' 즉 덧셈에 괄호를 씌워 먼저 계산하여 큰 수를 만들어 빼는 것이다. 이를 위해서 '-'로 토큰을 만든 다음 그 토큰 안에서 '+'를 통해 또 토큰을 나눈다. 소스코드 import..
www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 문제만 이해하면 크게 어려울 것 없는 문제다. 돈을 인출하는데 필요한 시간이 적은 사람부터 뽑아야 시간의 합의 최솟값을 구할 수 있다. 따라서 p 배열을 먼저 정렬한 후, 이전값을 통해 걸린 시간의 총합을 구한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import jav..
www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 희의 종료시간이 빠른 순으로 정렬하고 회의시간이 겹치지 않는 경우를 카운팅 하면 되는 문제다. 이해가 가지 않으면 st-lab.tistory.com/145의 그림을 참고하면 쉽게 풀 수 있을 것이다. 코드 설명은 주석으로 달았다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util...
www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디는 매 시점에 최선의 선택을 하는 알고리즘이다. 입력으로 오름차순으로 정렬된 동전 배열을 주었기에 배열의 마지막 인덱스부터 반복문을 돌린다. 딱히 그리디 알고리즘을 따로 공부하지 않아도 풀 수 있는 문제인 것 같다. 코드 설명은 주석으로 달아놨다. import java.io.BufferedReader; import java.io.InputSt..