본문 바로가기

분류 전체보기

[백준 2583] 영역 구하기 (Java) https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오른쪽 위 꼭짓점의 x, y좌표값이 빈칸을 사이에 두고 차례로 주어진다. 모눈종이의 왼쪽 아래 꼭짓점의 좌표는 (0,0)이고, 오른쪽 위 꼭짓점의 좌표는(N,M)이다. 입력되는 K개의 직사각형들이 모눈종이 전체를 채우는 경우는 없다. www.acmicpc.net 접근 방법 탐색을 위해 입력받은 모눈종이 정보를 2차원 배열로 변환했다. 직사각형이 들어간 칸은 1, 그렇지 않은 칸은 0으로 표기했다. 배열과 다르..
[부스트코스] servlet & jsp 연동 Servlet과 JSP 연동 - Servlet은 프로그램 로직이 수행되기에 유리하다. IDE 등에서 지원을 좀 더 잘해준다. - JSP는 결과를 출력하기에 Servlet보다 유리하다. 필요한 html문을 그냥 입력하면 된다. - 프로그램 로직 수행은 Servlet에서, 결과 출력은 JSP에서 하는 것이 유리하다. - Servlet과 JSP의 장단점을 해결하기 위해서 Servlet에서 프로그램 로직이 수행되고, 그 결과를 JSP에게 포워딩하는 방법이 사용되게 되었다. 이를 Servlet과 JSP 연동이라고 한다. Servlet과 JSP 연동 실습 Servlet과 JSP를 연동하는 실습을 해보았다. 100이하의 랜덤 숫자 두 개를 더한 결과를 화면에 출력하는 페이지를 구현하는데 비즈니스 로직은 LogicSe..
[부스트코스] forward란? (forward와 redirect 차이) forward란? WAS의 서블릿이나 JSP가 요청을 받은 후 그 요청을 처리하다가, 추가적인 처리를 같은 웹 어플리케이션안에 포함된 다른 서블릿이나 JSP에게 위임하는 경우가 있다. 이렇게 위임하는 것을 포워드(forward)라고 한다. forward의 동작 과정은 위 그림과 같다. 웹 브라우저에서 Servlet1에게 요청을 보냄 Servlet1은 요청을 처리한 후, 그 결과를 HttpServletRequest에 저장 Servlet1은 결과가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 같은 웹 어플리케이션 안에 있는 Servlet2에게 전송(forward) Servlet2는 Servlet1으로 부터 받은 HttpServletRequest와 HttpSer..
[부스트코스] 리다이렉트(redirect)란? 리다이렉트(redirect) - 리다이렉트는 http프로토콜로 정해진 규칙이다. - 서버는 클라이언트로부터 요청을 받은 후, 클라이언트에게 특정 URL을 이동하라고 요청할 수 있다. 이를 리다이렉트라고 한다. - 서버에서는 클라이언트에게 응답으로 상태코드를 302와 함께 이동할 URL정보를 Location 값에 이동할 URL을 추가한다. 클라이언트는 리다이렉션 응답을 받게 되면 헤더(Location)에 포함된 URL로 재요청을 보내게 된다. 이때 브라우저의 주소창은 새 URL로 바뀌게 된다. - 클라이언트는 서버로부터 받은 상태 값이 302이면 Location헤더값으로 재요청을 보내게 된다. 이때 브라우저의 주소창은 전송받은 URL로 바뀌게 된다. - 서블릿이나 JSP는 리다이렉트하기 위해 HttpSer..
[백준 2636] 치즈 (Java) https://www.acmicpc.net/problem/2636 2636번: 치즈 첫째 줄에는 사각형 모양 판의 세로와 가로의 길이가 양의 정수로 주어진다. 세로와 가로의 길이는 최대 100이다. 판의 각 가로줄의 모양이 윗 줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. 치즈가 없는 칸은 0, 치즈가 있는 칸은 1로 주어지며 각 숫자 사이에는 빈칸이 하나씩 있다. www.acmicpc.net 접근 방법 바깥 공기와 접촉해 있는 치즈 부분을 탐색해 제거하기 위해 우선 바깥 공기와 내부 공간을 구별해야했다. (1, 1)부터 bfs를 통해 0인 공간을 -1로 변경하였다. (내부공간은 탐색되지 않으니 그대로 0) 그 다음 이 중 for문으로 치즈 가장자리(해당 좌표에서 상, 하, 좌, 우에 -1이 한 번..
[백준 9466] 텀 프로젝트 (Java) https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 문제 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프로젝트를 함께하고 싶은 학생을 선택해야 한다. (단, 단 한 명만 선택할 수 있다.) 혼자 하고 싶어하는 학생은 자기 자신을 선택하는 것도 가능하다. 학생들이(s1, s2, ..., sr)이라 할 때, r= www.acmicpc.net 접근 방법 일반적인 DFS로 접근하여 시도를 했는데 런타임 에러가 발생했다. 1 5 2 3 4 5 4 위 케이스와 같이 5 -> 4 ..
[백준 7569] 토마토 (Java) https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, 1 ≤ H ≤ 100 이다. 둘째 줄부터는 가장 밑의 상자부터 가장 위의 상자까지에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 하나의 상자에 담긴 토마토의 정보가 주어진다. 각 줄에는 상자 가로줄에 들어있는 토마 www.acmicpc.net 접근 방법 백준 7576번 토마토 문제의 심화 단계로 역시 bfs로 접근이 가능했다. 다른 점이 있다면 탐색 범위가 상,하,좌,우에 위층,..
[부스트코스] JSP 내장객체(Implicit Objects) JSP 내장객체란? - JSP를 실행하면 서블릿 소스가 생성되고 실행된다. - JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성된다. - _jspService()에 삽입된 코드의 윗 부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용가능하다. - response, request, application, session, out과 같은 변수를 내장객체라고 한다. 내장 객체의 종류 ImplicitObjects.jsp 자바에서는 변수를 선언을 해야만 사용이 가능하다. 놀랍게도 내장 객체(위 코드에서는 request)는 따로 선언을 하지 않고도 사용이 가능하다. jsp가 서블릿으로 바뀔 때 변환된 코드를 찾아보면 이러한 내장객체들은..