전체 글 364

[Java] SWEA 1767번 : [SW Test 샘플문제] 프로세서 연결하기

1. 문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV4suNtaXFEDFAUf SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 과정 테두리에 있지 않는 각 프로세서마다 4방향 or 선택X 경우 합쳐 5가지 경우의 수가 있다. 기본적인 부분집합인 선택O or 선택X에서 선택지가 5개로 늘어났다고 볼 수 있는 것이다. 이 문제의 핵심은 부분집합과, 재귀에서의 복구하는 과정이다. 아래 코드에서는 연결한 부분을 2로 표시한 후, 재귀가 끝나고 다시 0으로 되돌려주고 다음 case를 진행하도록 했다. impor..

Servlet & JSP (5) - Error Page 처리

없는 페이지를 호출할 때 등 나타나는 error페이지를 예쁘게 만들고 싶을 때 쓰인다. 따로 만들지 않으면 아래와 같은 페이지가 뜬다. 없는 페이지를 불렀을 때 발생하는 404 error를 예시로 처리해보았다. 1. 프로젝트 구조 2. error 발생 시, 보여줄 페이지 작성 - e404.jsp - 파일 이름은 원하는 걸로 지어도 된다. 여기는 404에러 페이지 입니다. 3. error 발생 시, 보여줄 페이지 등록 - web.xml 404 /error/e404.jsp 결과

[Java] 백준 4485번 : 녹색 옷 입은 애가 젤다지?

1. 문제 https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 2. 풀이과정 BFS를 사용한 이유 처음엔, dfs로 풀고 시간 초과가 났다. 생각해보니 이 문제는 가다가 해당 노드에 더 작은 비용으로 갈 수 있는 경우, 굳이 더 갈 필요가 없어서 버리기 때문에 bfs가 유리하다. dfs를 사용할 경우, 초반에 전체 탐색을 하기 때문에 시간 초과가 나는 것 같다. Priority Queue를 사용한 이유 bfs임에도 priority..

[Java] 백준 2133번 : 타일 채우기

1. 문제 https://www.acmicpc.net/problem/2133 2133번: 타일 채우기 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. www.acmicpc.net 2. 풀이과정 채운다 = 빈칸없게! 1) n이 0이나 홀수면, 0을 출력 2) 짝수면 아래의 규칙을 따름 p[n] = (p[n-2]*3) + (p[n-4]*2) + (p[n-6]*2) + ... = (p[n-2]*3) + (p[n-4] + p[n-6] + ... )*2 2칸일 때, 가능한 건 3가지, 4칸일 때만 가능한 건 2가지, 6칸일 때만 가능한 건 2가지, ... , 그 뒤로 모두 2가지씩 있다. 여기서 6칸일 때만 가능하다는 말은 n=2, n=4일 때처럼 6보다 작은 타일에서 블럭을 어떻..

[Java] 백준12100번 : 2048(Easy)

1. 문제 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 2. 풀이 과정 처음엔 쉬운 풀이 방법이 있을까 생각하다가, 안 떠올라서 그냥 모든 경우의 수를 다 돌려보고 생각해봐야겠다 하고 구현했는데, 통과가 되었다. 위로, 아래로, 왼쪽으로, 오른쪽으로 각각 0, 1, 2, 3으로 생각하고 5개를 뽑는 중복 순열을 만들었다. 선택한 차례대로 함수를 실행시켜 결과를 냈다. 1) 최대값 구하기 - 처음 값을 입력받을 때..

[환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기2

*기본적인 세팅은 아래 글 참조 2022.03.26 - [웹프로그래밍/Servlet & JSP] - [환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기 [환경설정] Eclipse의 Web Project와 DB(MySQL) 연결하기 1. DB(MySQL)-connector 설치 및 등록 1. mysql-connector 설치 - mysql에서 각 언어마다 연결해주는 connector를 제공하고 있으니, 가져다 쓰자! https://mvnrepository.com/artifact/mysql/mysql-connector-java.. yerinpy73.tistory.com 위의 글에서 DBUtil.java는 DB의 데이터를 접근할 때마다 새로운 연결을 맺고 끊고를 반복하기 때문에, 시..

JSP (4) - JSTL

1. JSTL(Jsp Standard Tag Library)이란? JSP 표준 태그 라이브러리는 웹 개발을 위한 컴포넌트 모음으로, JSP페이지에서 스크립트릿을 사용하지 않고 간단하게 처리할 수 있는 방법을 제공한다. 2. JSTL core library 사용하기 JSTL은 core, XML, database등 여러 라이브러리가 존재하지만, 지금은 core library에 대해서만 알아볼 것이다. library prefix function URI core c 변수 지원, 흐름제어, URL처리 http://java.sun.com/jsp/jstl/core 1. JSTL 라이브러리 다운로드 받기 아래 사이트에서 원하는 버전을 다운받는다. https://mvnrepository.com/artifact/javax..

JSP (3) - EL

1. EL(Expression Language)이란? JSP의 표현식()보다 더 쉽게 값을 출력하기 위한 language(${ }) 1. EL에서 사용할 수 있는 기능 1) JSP의 4개의 영역 속성 사용 : PageContext, Request, Session, Application 2) 자바 클래스의 메서드 호출 3) EL의 기본 객체 사용 4) 수치, 관계, 논리 연산 사용 2. EL 내장객체 category identifier type 설명 JSP pageContext Java Bean 현재 페이지의 Page객체 범위 pageScope Map page 영역에 저장된 객체 추출 requestScope Map request 영역에 저장된 객체 추출 sessionScope Map session 영역에 ..

Servlet & JSP (4) - Cookie와 Session

0. Cookie와 Session이란? client 단위로 상태 정보를 유지할 때, 사용된다. client의 요청을 받은 server는 요청을 처리하고 응답을 해줄 때, Http protocol이 활용된다. Http protocol은 응답을 하고 나면 바로 연결을 해제하면서 사용된 정보가 유지되지 않는데 이를 stateless라고 한다. 이때, 정보를 유지하기 위해 Cookie와 Session을 사용한다. Cookie Session 공통점 Map 형식으로 관리하기 때문에 key값 중복X 차이점 Type javax.servlet.http.Cookie (Class) javax.servlet.http.HttpSession (Interface) 저장 위치 Client의 컴퓨터의 file Server의 메모리 저..

Servlet & JSP (3) - MVC 패턴

1. MVC 패턴이란? Model-View-Controller로 구조를 만들어 개발하는 개발 패턴이다. 이 패턴에 따라 개발하면 분업이 되어 유지보수가 쉽다고 알려진 형식들 중 하나이다. Controller가 Model과 View의 다리 역할을 한다. 1) Controller는 Client의 요청을 분석해서 Model에 있는 메서드를 호출한다. 2) Controller는 Model이 준 결과 값을 분석해서 알맞은 View를 찾아 Client에게 반환해준다. 2. MVC패턴을 적용한 Web project 1. Model (Java) - Logic을 처리하는 요소들 - controller가 호출하면 실행시켜서 controller에게 결과를 반환해준다. 1) Service Object - Logic 중에서 D..