분류 전체보기
Spring Framework - Spring MVC Form Tag
참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Spring MVC Form Tag HTML 에서 Form 태그를 쓰는 이유는, 간단히 말하면 사용자의 입력을 받아서 서버와 통신을 하기 위함이다. Spring 의 뷰 템플릿인 JSP 를 쓸때, 일반적인 HTML 처럼 Form 태그를 그냥 써도 되지만, Spring MVC Form Tag 를 쓰면, Spring Container 가 관리하는, Bean 과 JSP 파일간의 데이터 바인딩 작업을 더 용이하게 해주는 장점이 있다. 더 유용한 이유는, 스프링이 JSP 와 Bean 간의 데이터 전달시에, getter/setter 메소드를 이용해서 ..
Spring Framework - MVC 코드 예제
참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 앞선 포스팅에서 간단하게 MVC 가 뭔지 알아봤으니 이번에는 직접 간단한 MVC 예제를 작성해보자. 예제 1 - "/" 와 연결 : 가장 먼저, 페이지의 가장 메인인 홈 루트에 연결되는 컨트롤러와 뷰 페이지를 만들어보자 - HomeController.java import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HomeController { @Reque..
Spring Framework - Spring MVC Overview
참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이 포스팅에서는 MVC 가 무엇인지, Spring MVC 를 어떻게 설정하는지 등을 알아본다. - MVC MVC 는 디자인 패턴 중 하나로, Model View Controller 의 약자이다. Model 은 데이터를 나타내고 (Bean), View 는 단어 그대로, 보여지는 부분 (JSP) Controller 는 Model 과 View 사이의 매개체 역할을 하는 비즈니스 로직 부분이다 (Servlet). 스프링에서의 MVC 는 대략 이런 구조를 갖고 있다. 브라우저에서 해당 사이트에 대한 요청이 들어오면, Controller 가 이를 받아서..
BOJ 2812 - 크게 만들기
www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 적절한 자료구조를 잘 선택해야 풀 수 있는 문제이다. 이 문제에선 스택을 사용해서 문자들을 하나씩 처리해주는게 좋다 입력으로 들어오는 숫자가 최대 50만 자릿수를 가지므로 문자열로 만들어주고 문자를 앞에서부터 끝까지 돌면서, 지워야할 갯수 k 가 0 보다 큰경우, 스택이 비어있지 않은경우, 스택의 맨 윗값이 현재 문자보다 작은 경우를 동시에 만족하는 경우, 스택에서 하나씩 빼내면서 k 를 줄인다. 그리고 난 후 문자를 하나씩 추가해서 스택에 넣는다. for (int i = 0;..
BOJ 8983 - 사냥꾼
www.acmicpc.net/problem/8983 8983번: 사냥꾼 KOI 사냥터에는 N 마리의 동물들이 각각 특정한 위치에 살고 있다. 사냥터에 온 사냥꾼은 일직선 상에 위치한 M 개의 사대(총을 쏘는 장소)에서만 사격이 가능하다. 편의상, 일직선을 x-축이라 가 www.acmicpc.net 이 문제는 이분탐색을 써야 풀 수 있다. 최댓값이 십만이기 때문에 사대의 위치와 동물의 위치를 이중 포문으로 탐색하면 시간초과가 나기 때문이다. 사대의 위치를 기준으로 탐색하기보다는, 동물의 위치를 기준으로 해당 동물과 가까운 사대를 찾는 방식으로 풀어야 더 수월하게 풀 수 있다. 사대의 위치를 먼저 배열에 다 받아둔뒤, 오름차순으로 정렬시키고, 동물의 좌표를 받을때 마다 이분탐색을 수행한다. 동물과 사대가 사..
BOJ 11657 - 타임머신
www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 이 문제는 벨만 포드 알고리즘을 이용하여 노드간 최단 거리를 구하는 문제이다. - 참고 : blog.naver.com/kks227/220796963742 벨만 포드 알고리즘(Bellman-Ford Algorithm) (수정: 2020-07-10) 이어서 소개해드릴 것은 또다른 최단경로 알고리즘입니다.벨만 포드 알고리즘(Bellman-Ford algor..
BOJ 10165 - 버스 노선
www.acmicpc.net/problem/10165 10165번: 버스 노선 첫 번째 줄에는 버스 정류소의 개수 N(3 ≤ N ≤ 1,000,000,000)이 주어지고 두 번째 줄에는 버스 노선의 수 M(2 ≤ M ≤ 500,000)이 주어진다. 각 버스 노선은 1부터 M까지의 번호로 구분된다. 그 다음 M개 www.acmicpc.net 이 문제는 그리디로 풀어야 하는 문제이다. 이 문제의 가장 핵심 부분은 버스의 노선 [start, end] 가 start > end 일때 어떻게 처리하느냐 이다. 만약 모든 입력이 [start, end] (start < end) 이라면, 입력 값들을 정렬할때, start 가 작은 순대로 앞으로 오게 하고, start 가 만약 같은 경우라면, end 가 큰게 앞으로 오도..
BOJ 17136 - 색종이 붙이기
www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 이 문제는 백트래킹을 써야 풀 수 있는 문제이다. 먼저 10 * 10 크기의 이차원 배열을 (0, 0) 부터 하나씩 순회하면서, 값이 1인 부분을 찾아내고, 값이 1인 (i, j) 좌표에 5개의 색종이 중 어떤 것을 붙일 수 있는지 판별한다 어떤 k 번째 색종이를 붙일 수 있다면, 그 색종이를 붙이고 다음 가지수를 찾기 위해 백트래킹을 써준다. 이때 순회를 하기 위한 재귀함수의 종료조건은 1. 10 *..