분류 전체보기
Spring Framework - Hibernate ORM
참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번 포스팅에서는 Hibernate ORM 에 대해 알아본다 - Persistence : persistence 는 한글로 하면 '영속성' 을 의미한다. 영속성이란것은, 사전적으로 영원히 계속되는 성질이나 능력 이라고 정의되는데, 프로그램이 꺼지더라도, 프로그램 실행시에 사용했던 데이터들을 남겨야할 필요가 있을때가 있다. 스프링을 통한 웹 개발시에, 사용되는 데이터들에 대해서 영속성을 부여하는 방법이 있는데, 그것은 DB 와 연동시켜서 DB 에 저장하는 방법이다. 자바에서 DB 와 연동하는 방법은 JDBC 를 쓰는 것이다. JDBC 는 Java..
Spring Framework - Validation
참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Validation 앞선 포스팅에서 까지는, 사용자의 입력을 받아서 컨트롤러와 모델을 이용해서 로직을 처리한뒤, 뷰를 통해 화면상에 보여주는 방법을 알아봤다. 이번에는, 사용자가 입력을 할때, 입력값에 대해서 유효한 값인지를 검증하는 방법에 대해서 알아본다. 예를들면, 회원가입시에, 비밀번호는 몇자리가 가능하고, 어떤 부분은 필수로 넣어야 하는 값이고 등 이런것들을 스프링으로 어떻게 처리하는지 알아본다. - Bean Validation Bean Validation 이란 것은 스프링에서 Bean 에 대한 데이터 유효성 검증을 위한 메타데이터..
BOJ 15961 - 회전 초밥
www.acmicpc.net/problem/15961 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 먼저 일반 배열을 사용해서 원형 초밥에 담긴 초밥 정보들을 저장하게 한다 원형 큐 대신에 배열을 사용할 수 있는것은 모듈러 연산을 적절히 잘 수행하면 마치 원형 큐 처럼 순회가 가능하기 때문이다. (아래 코드에서 arr[(i + k - 1) % n]) 그 다음 k 개 연속으로 먹을수 있는 경우에 대해서 가짓수를 센다. 다음으로 n 만큼 반복문을 돌리면서, 제일 먼저,..
BOJ 16681 - 등산
www.acmicpc.net/problem/16681 16681번: 등산 첫 번째 줄에 지도에 표시된 지점의 개수, 지점을 잇는 경로의 개수, 주환이의 거리 비례 체력 소모량, 높이 비례 성취감 획득량을 나타내는 정수 N, M, D, E가 공백을 사이에 두고 주어진다. (2 ≤ www.acmicpc.net 이 문제는 다익스트라 알고리즘을 사용해야 한다. 이 문제의 특징은 시작지점(집) 에서 도착지점(고려대) 로 가는 최단거리를 바로 구하는게 아니라, 어떤 임의의 지점을 선정해서 그 지점을 거치고 도착지로 가야한다 먼저, 시작지점에서 어떤 임의의 지점까지는 항상 높이가 증가하는 방향으로 진행해야한다. 그리고 해당 지점에 도착하고 나면, 도착지점까지 가야하는데, 도착지점까지의 높이가 항상 감소하는 방향으로만..
BOJ 1941 - 소문난 칠공주
www.acmicpc.net/problem/1941 1941번: 소문난 칠공주 총 25명의 여학생들로 이루어진 여학생반은 5*5의 정사각형 격자 형태로 자리가 배치되었고, 얼마 지나지 않아 이다솜과 임도연이라는 두 학생이 두각을 나타내며 다른 학생들을 휘어잡기 시작 www.acmicpc.net 이 문제는 백트래킹을 이용해야 풀 수 있는 문제이다. 총 25명의 학생중 7명을 조합으로 추려낼 수 있게 해주고, 7명을 뽑아냈다면, 그 7명 중에서 4명 이상이 이다솜파인지 확인해야하며, 동시에 그 7명이 인접해 있는지 확인해야 한다. 이 모든 조건을 만족한다면 경우의 수를 하나씩 세서 답을 구한다. - c++ #include using namespace std; int answer; int dy[4] = {-1..
BOJ 1328 - 고층 빌딩
www.acmicpc.net/problem/1328 1328번: 고층 빌딩 상근이가 살고있는 동네에는 빌딩 N개가 한 줄로 세워져 있다. 모든 빌딩의 높이는 1보다 크거나 같고, N보다 작거나 같으며, 같은 높이를 가지는 빌딩은 없다. 상근이는 학교 가는 길에 가장 왼 www.acmicpc.net 이 문제는 DP 를 이용해야 풀 수 있는 문제이다. DP[i][j][k] = w : 지은 건물이 i 개 이며, 왼쪽에서 j 개의 건물이 보이고, 오른쪽에서 k 개의 건물이 보일때, 가능한 총 경우의 수가 w 이다. 건물을 지을때, 가장 높이가 높은거 부터 가장 높이가 작은 1인 건물을 제일 마지막에 짓는다고 가정할때, 3개의 경우의 수가 생긴다 1) 가장 왼쪽에 건물을 짓는다. (DP[i - 1][j - 1][..
BOJ 5719 - 거의 최단 경로
www.acmicpc.net/problem/5719 5719번: 거의 최단 경로 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있 www.acmicpc.net 이 문제는 두번째 최단 경로를 구해야 하는 문제이다. 다익스트라 알고리즘을 사용하면, 가장 짧은 경로를 구할 수 있다. 그러나 이 문제는 그 다음번으로 짧은 경로를 찾아내야 한다. 이를 위해서, 다익스트라 알고리즘을 두 번 사용하되, 첫번째 다익스트라 알고리즘 수행하면서, 찾아낸 최단 경로들을 그래프 상에서 제거해야한다. 이를 위해 BFS 를 사용해서 최단경로에 해당하는 부분을 -..
BOJ 10217 - KCM Travel
www.acmicpc.net/problem/10217 10217번: KCM Travel 각고의 노력 끝에 찬민이는 2014 Google Code Jam World Finals에 진출하게 되었다. 구글에서 온 초대장을 받고 기뻐했던 것도 잠시, 찬찬히 읽어보던 찬민이는 중요한 사실을 알아차렸다. 최근의 대세 www.acmicpc.net 이 문제는 다익스트라 알고리즘에 DP 방식을 도입해야 풀 수 있는 문제이다. 다익스트라 자체로는 최소시간을 구할 순 있지만, 이 문제는 소요시간과 비용까지 계산을 해야 되기 때문에, 기본 다익스트라 알고리즘으로는 풀 수 없다. DP 배열을 다음과 같이 세워준다 DP[i][j] = k : i 번 노드까지 j 의 비용으로 갔을때 소요되는 최소시간 k 최소 시간을 찾아내기위해서는..