전체 글 239

인텔리제이 자주 사용하는 단축키

Ctrl+Alt+s ==>preference Alt+Ins ==> getter and setter , 생성자 Ctrl+Shift+t ==>테스트 클래스 추가 Ctrl+B ==> 지정된 클래스로 이동 **** iter입력 후 tap ==>for문 자동 생성 메서드 드레그 후 Ctrl+D ==> 복사 붙혀넣기 Ctrl+Shift+Enter ==> 바로 다음줄로  넘어감 Ctrl + O ==> Select Methods to Oberride/Implement Ctrl+Alt+Insert ==> 클래스 생성 Ctrl + E + Enter ==> 이전에 방문했던 클래스,파일로 이동Ctrl + F6 ==> Rename

컴퓨터 2024.07.28

백준-13913번/숨바꼭질 4(java)

문제 이해 1697번 문제 숨바꼭질과 비슷한 문제이지만, 요구사항이 하나 더 추가 되었다.https://developerwoohyeon.tistory.com/114 백준-1697번/숨바꼭질(java)문제 이해 기존의 BFS 문제들이랑 크게 다를것은 없었다. 이동 경로만 잘 생각해주면 그렇게 어려운 문제는 아니다. 이동 경로 1) 1칸 앞으로 이동2) 1칸 뒤로 이동3) 현 위치 * 2 만큼 이동 이러developerwoohyeon.tistory.com  추가된 요구사항 : 목적지 까지의 최소 이동시간이 소요되는 경로를 순서대로 출력 경로를 순서대로 출력하기 위해서는 배열이 하나 더 추가되어야 한다. static int[] arr = new int[100001];static int[] time = new ..

알고리즘/백준 2024.07.28

백준-1697번/숨바꼭질(java)

문제 이해 기존의 BFS 문제들이랑 크게 다를것은 없었다. 이동 경로만 잘 생각해주면 그렇게 어려운 문제는 아니다. 이동 경로 1) 1칸 앞으로 이동2) 1칸 뒤로 이동3) 현 위치 * 2 만큼 이동 이러한 이동을 구현하기 위해 move 배열 생성static int[] move = {1,-1,2}; 이동 규칙1) 방문했던 곳을 방문X2) 이동에 걸리는 시간을 출력해야 하므로 이동 할때마다 시간 +13) 방문했다면 visit 배열에 방문을 표시 문제 풀이 public static void BFS(int now){ Queue queue = new LinkedList(); queue.add(now); visit[now]=true; while(!queue.isEmpty()){ ..

알고리즘/백준 2024.07.27

검증 - 개선

지금까지 개발한것은 필드오류가 발생하면 입력값이 남아있지 않고 지워진다.하지만 FieldError부분을 약간만 손봐주면 오류 발생시 입력값을 남아있도록 해줄 수 있다. @PostMapping("/add") public String addItemV2(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) { //검증 로직 if(!StringUtils.hasText(item.getItemName())){// errors.put("itemName","상품 이름은 필수입니다."); bindingResult...

BackEnd/spring 2024.07.26

검증 - BindingResult

BindingResult이란 ==> 스프링이 제공하는 검증 오류를 보관하는 객체이다. 앞선 실습에서는 검증 오류를 HashMap에 보관했지만 이번에는 BindingResult를 이용해 보았다.  @PostMapping("/add") public String addItemV1(@ModelAttribute Item item, BindingResult bindingResult, RedirectAttributes redirectAttributes, Model model) {// //검증 오류 결과를 보관// Map errors = new HashMap(); //검증 로직 if(!StringUtils.hasText(item.getItemName())){// ..

BackEnd/spring 2024.07.26

백준-7562번/나이트의 이동(java)

문제 이해 그래프 문제들은 기본적인 틀을 벗어나지 않는 것 같다.DFS, BFS만 구현을 잘 한다면 그래프 문제를 보다 쉽게 풀 수 있을 것 같다는 생각이 든다.   이 문제는 전에 풀었던 2178번 미로 탐색 문제와 매우 유사한 느낌이다.https://www.acmicpc.net/problem/2178 다만 차이점이라고 하면 이번 문제는 이동 방법을 더 고민 해봐야 한다는 점이다. 이동 방법1) X축으로 2 or -2만큼 이동한 경우 ==> Y축으로 -1 or 1만큼 이동 2) X축으로 -1 or 1만큼 이동한 경우 ==> Y축으로 -2 or 2만큼 이동 이러한 규칙을 수행하기 위해 이번에는 dx dy 배열이 더욱 길어졌다static int[] dx = {-2, -1, 1, 2, 2, 1, -1, -2..

알고리즘/백준 2024.07.26

검증(직접 처리)

웹어플리케이션의 검증 기능을 직접 처리 해보는 시간을 가져봤다. 검증 요구사항1) 가격, 수량에 문자가 들어가면 검증 오류 처리 2) 상품명: 필수, 공백X    가격: 1000원 이상, 1백만원 이하    수량: 최대 9999 3) 가격 * 수량의 합은 10,000원 이상  이러한 요구 사항을 만족 시키지 못한다면 어떤 오류가 발생했는지 고객에게 알려주고 다시 '상품 등록 폼'을 띄워서 다시 값을 입력 하도록 한다. @PostMapping("/add")public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { //검증 오류 결과를 보관 Map errors = new H..

BackEnd/spring 2024.07.25

백준-2178번/섬의 개수(java)

문제 이해 N x M 크기의 그래프가 주어지고 N,M좌표까지의 최단 경로의 칸 이동 수를 구하면 되는 문제이다. 문제를 풀기 위해 BFS(너비 우선 탐색)을 사용하였다. 문제를 풀때 배열에서의 BFS는 처음 구현해보아서 매우 힘들었다..  문제 풀이 변수static int N, M;static int[][] arr;static int[] dx = {-1, 1, 0, 0};static int[] dy = {0, 0, -1, 1};static boolean[][] visit;dx, dy ==> 상하 좌우 이동을 위해 존재visit ==> 방문 여부  public static void BFS(int x, int y) { Queue queue = new LinkedList(); queue.add(ne..

알고리즘/백준 2024.07.25

웹 애플리케이션에 국제화 적용하기

앞선 글에서 작성한 코드에서는 메시지만 적용했고 이번에는 국제화를 적용해 보았다.https://developerwoohyeon.tistory.com/107 웹 애플리케이션에 메시지 적용하기테스트 코드를 통해 메시지 적용을 확인했으니 이제 웹 어플리케이션에 메시지를 적용해보자. label.item=상품label.item.id=상품 IDlabel.item.itemName=상품명label.item.price=가격label.item.quantity=수량page.items=developerwoohyeon.tistory.com  국제화는 messages_en.properties에 영어 메시지를 추가해주면 끝난다. label.item=Itemlabel.item.id=Item IDlabel.item.itemName=I..

BackEnd/spring 2024.07.24