전체 글 248

백준-2529번/부등호 (java)

문제 이해 부등호로 이루어진 문자열이 주어지면 부등호 사이에 올수있는 모든 숫자열 중 최솟값과 최대값을 구해주면 된다.모든 경우를 구해줘야 하므로 dfs를 이용하면 쉽게 구할 수 있다. 문제 풀이 맨 앞의 숫자가 0~9까지 중 올수있는 모든 경우의 수를 구해줘야 하므로 for문을 이용하여 dfs를 호출해준다.for (int i = 0; i   ※매개변수start ==>가장 최근에 삽입된 숫자(dfs에서는 start뒤에 들어올 숫자를 결정)count ==> 삽입된 숫자의 갯수num ==> 부등호 사이에 들어가는 숫자들을 표현한 문자열static void dfs(int start, int count, String num) { if (count == N) { number.add(num); /..

알고리즘/백준 2024.07.16

텍스트 - text, utext

HTML의 콘텐츠에 데이터를 출력할때는 아래 코드와 같이 사용하면 된다.  HTML 테그의 속성이 아니라 HTML 콘텐츠 영역안에서 직접 데이터를 출력하고 싶으면 다음과 같이 [[ ... ]]를 사용하면 된다.[[${data}]] 콘텐츠에 데이터를 출력하는 간단한 예제 코드를 통해 알아보자  package hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping..

BackEnd/Thymeleaf 2024.07.15

백준-14889번/스타트와 링크 (java)

문제 접근 두 팀의 능력치의 최소 차이를 구하면 된다. 인원의 절반은 스타트 팀, 나머지는 링크 팀으로 배치시키는 모든 경우의 수를 구해야 하므로 dfs를 수행해주면 된다. dfs의 종료 조건 :  전체 인원의 절반이 스타트 팀으로 빠졌다면 그 상황에서의 능력치의 차이를 구해주면 된다.   문제 풀이 N = 인원수S = 개인 능력치를 저장하는 이차원 배열visit = dfs에서 방문 유무를 확인할때 쓰이는 일차원 배열Min = 최소 능력치 차이를 저장static int N;static int[][] S;static boolean[] visit;static int Min = Integer.MAX_VALUE;  idx = 현재 선택된 사원count =  스타트 팀으로 들어간 인원 수 (절반이 스타트 팀에 들..

알고리즘/백준 2024.07.15

간단한 Web페이지 프로젝트(7) - RedirectAttributes

요구사항 상품을 추가하면 저장이 되었다는 메시지를 띄우기.  개발 RedirectAttribute를 사용하여 URL 인코딩도 하고, pathVariable, 쿼리 파라미터까지 처리할 수 있다. @PostMapping("/add")public String addItemV6(Item item, RedirectAttributes redirectAttributes) { Item savedItem=itemRepository.save(item); redirectAttributes.addAttribute("itemId",savedItem.getId()); redirectAttributes.addAttribute("status",true); return "redirect:/basic/items/{..

BackEnd/Spring Boot 2024.07.07

간단한 Web페이지 프로젝트(6) - PRG Post/Redirect/Get

지금까지 진행하고 있던 프로젝트에 문제점이 있다.◆ 상품 등록을 완료하고 새로고침을 누르면 상품이 계속 중복 등록이 되는 것을 확인할 수 있다.문제 원인 웹 브라우저 새로고침은 마지막에 서버에 전송한 데이터를 다시 전송한다.상품을 등록할때 POST/add를 이용해서 상품 데이터를 서버로 등록하는데,이 상태에서 새로고침을 하면 POST/add를 한번 더 하게 되므로 ID만 다르게 상품이 계속 등록되는 것이다.   문제 해결법 이러한 문제를 해결하기 위해서 리다이렉트를 이용해주면 된다.새로 고침 문제를 해결하기 위해 상품 저장 후에 뷰 템플릿으로 이동하는것이 아니라, 상품 상세 화면으로 리다이렉트를 호출해주면 된다. @PostMapping("/add")public String addItemV5(Item it..

BackEnd/Spring Boot 2024.07.07

백준-14501번/퇴사 (java)

문제 이해 T[i] ==> 상담하는데 걸린 시간P[i] ==> 상담으로 받는 금액 정해진 시간안에 받을 수 있는 최대 금액을 구하는 문제이다. DFS를 이용하면 DP를 이용하는 것 보다 쉽게 구할 수 있다. DFS 탈출 조건==> 현재 날짜에서 상담에 걸리는 시간을 더했을때 N보다 크거나 같을 경우 문제 풀이static void dfs(int idx, int pay){ if(idx>=N){ result = Math.max(pay,result); return; } if(idx+T[idx] idx+T[idx]가 N 보다 작을 경우 즉, 상담을 할 수 있는 경우 재귀 호출을 이용해서 상담을 완료한 다음 날짜와 누적 금액을 넘겨준다. 상담이 불가능한 경우 다음 날짜와 가..

알고리즘/백준 2024.07.07

간단한 Web페이지 프로젝트(5) - 상품 수정

목표 상품 수정을 가능하게 하기상품 수정 폼에서 저장 버튼을 누르면 상품 수정이 완료되고, 취소 버튼을 누르면 다시 상품 상세 폼으로 돌아오게 하기 개발 Get ==> 상품 수정 폼@GetMapping("/{itemId}/edit")public String editForm(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/editForm";} 수정할 정보를 조회하고, 수정용 폼 뷰를 호출  Post ==> 상품 수정 처리@PostMapping("/{itemId}/edit") public String ..

BackEnd/Spring Boot 2024.07.06