분류 전체보기

    BOJ 2589 - 보물섬

    www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 전형적인 BFS 문제이다. L 에 해당하는 지역만 탐색하게 하면서, 거리 배열을 따로 만들어둬서, 새 지역으로 이동할때 마다 거리를 갱신해주고, 최대 거리 값을 구하면 되는 문제다. - c++ #include #define MAX 51 using namespace std; char adj[MAX][MAX]; bool visited[MAX][MAX]; int depth[MAX][MAX]; // 거리 계산을 위한 배열..

    BOJ 17298 - 오큰수

    www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net N 의 최대 크기가 백만이기 때문에, 단순히 이중 포문을 쓰면 당연히 시간초과가 발생한다 그래서, 처음에 N 개의 수들을 벡터에 저장해 둔 뒤, 스택을 이용해서 풀어야 한다 (사실 스택을 쓰는것을, 문제에서 주는 힌트를 보고 스택써야겠구나 생각했다) 스택에는, N개의 수가 들어가는게 아니라, N개의 수가 위치한 인덱스 값을 넣는다 비어있는 상태의 스택에서는, 즉 첫번째 인덱스는 반드시 들어가고 스택이 비어있지 않은 상태에서는..

    Spring Framework - Persistence Context

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번에는, 영속성 컨텍스트(Persistence Context) 와 Entity LifeCycle 이 뭔지 알아본다. - Persistence Context 앞선 포스팅에서 Entity Class 에 대해서 언급한 적이 있었다. Entity Class 는 DB 의 테이블과 매핑되는 클래스를 일컫는말이다. 이 Entity Class 들은 EntityManager 라는것에 의해서 관리되는데, 유저로부터 특정한 Entity 에 대한 요청이 들어올때마다, EntityManagerFactory 라는것에서 각 Entity 에 대한 EntityManage..

    BOJ 2075 - N번째 큰 수

    www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 메모리 제한이 있는 문제여서 단순히 이차원배열이나 벡터를 쓰면 메모리 초과가 발생한다. 이 문제를 풀기위한 핵심 아이디어는, 입력받은 모든 값을 메모리에 저장하는게 아니라, 최소힙을 이용해서 N 개 만큼만 받은뒤, N 개 이상의 입력이 들어오는 경우, 최소힙에 담긴 가장 작은 값과 비교해서 더 크면 추가해주는 방식으로 쭉 배열을 돌리면 결국 N 개만 최소힙에 남게되고, 가장 큰 것 ~ N번째로 큰 것 만 최소힙에 남게..

    BOJ 9328 - 열쇠

    www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 이 문제는 BFS 를 이용해서, 얻을 수 있는 문서의 최댓값을 찾아야 하는 문제다. 다른 BFS 기본 문제들 처럼 단순히 BFS 로 탐색해서는 풀 수 없다. 이 문제를 풀기위한 가장 핵심이 되는 아이디어는 열쇠를 발견하고 나서, 해당 열쇠와 일치하는 문에 가서 문을 여는게 아니라, 열쇠를 발견하면 이 열쇠와 일치하는 문을 미리 열어놓고, BFS 를 수행한다는게 핵심이다. 처음에 입력받을때, 일부 열쇠를 얻고 시작하면, 그 ..

    Spring Framework - CRUD Using Hibernate ORM

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번에는, Hibernate ORM 을 이용해서 간단하게 CRUD (Create, Read, Update, Delete) 를 하는 방법에 대해 알아본다. 먼저 사용할 DB (여기선 MySQL) 에 Student 테이블을 만들어준다 - SQL CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(45) DEFAULT NULL, `last_name` varchar(45) DEFAULT NULL, `email` varchar(45) DEFAULT NUL..

    BOJ 1918 - 후위 표기식

    www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 A~Z의 문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 수식 www.acmicpc.net 전형적인 스택 문제다 입력값에 따른 케이스를 잘 분류해서 연산하면 답이 나온다 - c++ #include #include #include using namespace std; stack st; string input, answer; int main() { cin.tie(0); ios_base::sync_with_stdio(0); cin >> input; for (int i = 0; i

    BOJ 1043 - 거짓말

    www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 처음에 문제 풀때, 진실을 아는 사람의 정보를 담는 배열, 파티를 구성하는 2차원 배열로 문제를 해결하려 했으나, 이전 차례 혹은 다음 차례의 파티에서 진실을 알게 될 경우를 계산하지 못해서 틀렸다 더보기 #include #define MAX 51 using namespace std; int N, M; bool known[MAX]; // 진실을 아는 사람들 bool arr[MAX][MAX]; // i 번 파티의 참가자 j..