전체 글 239

타임리프 - 템플릿 레이아웃

코드 조각을 레이아웃에 넘겨서 사용하는 방법에 대해서 공부해 보았다.   메인 컨텐츠  메인 타이틀이 전달한 부분으로 교체되었고 추가 부분에 들이 포함되었다. 위에서 다룬 개념을 메인 페이지 컨텐츠 메인 페이지 포함 내용  레이아웃 H1 레이아웃 컨텐츠 레이아웃 푸터    layoutExtendMain.html이 현재 페이지인데, 자체를 th:replace를 이용해서 변경하는 것을 확인 할 수 있다.결국 laoutFile.html에 필요한 내용을 전달하면서 자체를 layoutFile.html로 변경한다.

BackEnd/Thymeleaf 2024.07.21

타임리프 - 템플릿 조각

템플릿 조각을 이용해 공통 영역을 효율적으로 처리할 수 있다. package hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/template")public class TemplateController { @GetMapping("/fragment") public String template(){ return "template/fragment/f..

BackEnd/Thymeleaf 2024.07.21

백준-1260번/DFS와 BFS(java)

문제 이해 그래프에서 DFS(깊이 우선 탐색) 와 BFS(너비 우선 탐색) 을 구현하면 되는 문제이다. 그래프를 구현하는 방법에는 인접행렬과 연결리스트로 표현하는 것이 있는데 이번 문제에서는 연결리스트로 구현해 보았다. 문제 풀이 1) ArrayList만들어주기ArrayList> graph = new ArrayList(); 2) 각 노드 별 리스트를 만들어준다.for(int i=0; i());} 3) 각 노드들의 연결 정보를 입력 받는다.for(int i=0; ipublic static void putEdge(ArrayList> graph, int x, int y){ graph.get(x).add(y); graph.get(y).add(x);}  4) *** 각 노드에 있는 연결 리스트를 정렬해..

알고리즘/백준 2024.07.21

타임리프-반복문

타임리프에서 반복문을 th:each로 사용할 수 있다. 실습을 위해 List에 User객체 3명을 넣어서 Model에 담아준다.@GetMapping("/each")public String each(Model model){ addUsers(model); return "basic/each";}private void addUsers(Model model){ List list = new ArrayList(); list.add(new User("UserA",10)); list.add(new User("UserB",20)); list.add(new User("UserC",30)); model.addAttribute("users",list);}  기본 테이블 ..

BackEnd/Thymeleaf 2024.07.19

타임리프-속성값 설정

타임리프는 속성값을 th:*로 지정한다.th:*로 속성을 적용하면 기존 속성을 대체한다. 속성 설정속성 추가- th:attrappend = - th:attrprepend = - th:classappend = checked 처리- checked o - checked x - checked=false   소스코드를 보면 다 th:로 대체 된것을 확인할 수 있다. th:attrappend  : 속성 값의 뒤에 값을 추가한다.th:attrprepend  : 속성 값의 앞에 값을 추가한다. th:classappend : class 속성에 자연스럽게 추가한다.   th:checked="false"위와 같이 코드를 작성하면 checked값이 false인 경우 checked 속성 자체를 제거한다.

BackEnd/Thymeleaf 2024.07.19

백준-1182번/부분수열의 합(java)

문제 이해 주어진 수열의 부분수열의 합이 S가 되는 경우의 수를 구해주면 되는 문제이다.모든 경우의 수를 집고 넘어가야 하므로 dfs를 이용하면 쉽게 풀 수 있다. 문제 풀이 private static void dfs(int start, int sum){ if(start==N) { if (sum == S) { count++; } return; } dfs(start+1,sum+num[start]); dfs(start+1,sum);}  배열에서 선택된 수를 더할지 아니면 그냥 넘어갈지를 결정하기 위해서 재귀 호출을 이용하였다. 그리고 start변수가 N이 되면 배열의 끝까지 도달한 경우인데 이때의 sum이 S와 같으면 경우의 수에..

알고리즘/백준 2024.07.19

백준-11723번/집합(java)

문제 접근 문제를 보자마자 HashSet의 특징이 떠올라서 HashSet을 이용하여 풀면 간단하게 풀 수 있겠다는 생각을 가지고 구현해보았다. import java.util.HashSet;import java.util.Scanner;public class Problem11723 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); String calculation; int num; HashSet S = new HashSet(); for(int i=0; i  제출결과 시간초과가 발생..

알고리즘/백준 2024.07.19

타임리프 - 리터럴

타임리프에서 문자 리터럴은 항상 ' '작은 따옴표로 감싸줘야 한다. 하지만 공백없이 이어지는 문자 리터럴은 작은 따옴표로 감싸지 않아도 된다.ex)  아래 코드와 같이 공백이 있으면 오류가 생긴다. 작은 따옴표로 감싸면 다시 정상작동한다.  리터럴 "hello world!" = --> 'hello' + ' world!' = 'hello world!' = 'hello ' + ${data} = 리터럴 대체 |hello ${data}| =   리터럴 대체(Literal substitutions)"|hello ${data}|" 리터럴 대체 문법을 사용하면 템플릿을 사용하는 것 처럼 편리하게 이용할 수 있다.

BackEnd/Thymeleaf 2024.07.16