자바

· TIL
문제 스프링 부트에서 Record 클래스로 application.yml 파일 값 가져오려다가 에러가 났다. 상황// application.yml fruit: list: - name: banana color: yellow - name: apple color: red yml 파일에 fruit.list 속에 과일 리스트가 있는 형태를 스프링에서 가져다 쓰려고 했다.  // Fruit.classpublic record Fruit( String name, String color) {} // FruitList.classimport org.springframework.boot.context.properties.ConfigurationProperties;impor..
· 알고리즘
https://www.acmicpc.net/problem/1520  설명처음에는 BFS로 풀었다. 근데 BFS로 노드를 지나가면서 방문 체크를 해두는데, 이미 방문한 노드에 대해서는 이후 다른 경로에서는 거치지 않기 때문에 경로가 딱 1개만 나왔다. 그렇다고 지나간 경로를 체크 안 하면 무한 루프에 빠져서 BFS는 버렸다.  그 다음에는 DFS로 풀었다. 답은 나왔는데, 시간 초과가 떴다.  그래서 곰곰이 생각하다가 DP로 풀었더니 풀렸다.  탑다운 방식으로 풀었다.범위를 벗어나는 좌표에서는 0을 리턴하고, 이미 계산한 좌표에서는 그대로 계산 값을 리턴하고, 아직 계산하지 않는 좌표에 대해서는 현재 좌표의 상하좌우의 높이를 비교해서 현재 높이보다 큰 인접 좌표에 대해서 재귀로 dp를 호출했다.  stat..
· 알고리즘
https://www.acmicpc.net/problem/1202 맨 아래에 전체 코드 있다.   설명 처음에 배낭문제 인줄 알았는데 가방이 여러 개라 어떻게 풀지 고민하다가 가방에 1개의 보석만 담을 수 있어서 아닌 것 같았다(?)  일단 보석을 객체로 만들고, 가방 최대 무게 배열을 오름차순으로 정렬보석 리스트를 (1) 무게 오름차순, (2) 가격 내림차순 정렬 매 가방마다 보석 리스트 돌며 최대 무게 이하인 보석만 우선순위 큐에 넣기 (우선순위 큐는 2번과 같이 정렬됨)하나 poll 해와서 가격을 총 더하고, 더한 보석은 보석리스트에서 제거 출력  인줄 알았는데 시간 초과가 났다. 아무래도 보석과 가방 개수가 최대 30만개에, 이중 반복문이면 900억이어서..   그래서 풀이 봤다! 근데 풀이 설명..
· 알고리즘
https://www.acmicpc.net/problem/11655  import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); char[] chars = str.toCharArray(); for (int i = 0; i 'Z') || (Character.isLowerCase(ch) && n > 'z')) { n -= 26; } chars[i] = (char) n; ..
· 알고리즘
https://www.acmicpc.net/problem/10825 import java.io.*;import java.util.*;public class Main { static int N; static List students = new ArrayList(); static StringBuilder sb = new StringBuilder(); static int stoi(String s) { return Integer.parseInt(s); } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea..
· 알고리즘
https://www.acmicpc.net/problem/1076  import java.io.*;import java.util.*;public class Main { static Map map = Map.of( "black", "0", "brown", "1", "red", "2", "orange", "3", "yellow", "4", "green", "5", "blue", "6", "violet", "7", "grey", "8", "white", "9" ); static long stol(String s) { return Long.parseLong(s..
· 알고리즘
https://www.acmicpc.net/problem/1977   import java.io.*;public class Main { static int N, M, total; static int min = Integer.MAX_VALUE; static int stoi(String s) { return Integer.parseInt(s); } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); M = stoi(br.readLine()); N ..
· 알고리즘
https://www.acmicpc.net/problem/1145  import java.io.*;import java.util.*;public class Main { static int N; static int[] arr = new int[5]; static int stoi(String s) { return Integer.parseInt(s); } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new String..
· TIL
닉네임을 변경하는 API에서, 요청하는 DTO의 검증을 달고 있었다. public record UserUpdateNicknameReq( @NotBlank(message = "닉네임은 빈 값이면 안 됩니다.") @Size(min = 1, max = 35, message = "닉네임은 1자 이상, 35자 이하여야 합니다.") @Pattern(regexp = "^[a-zA-Z0-9가-힣]$", message = "닉네임은 한글 및 숫자와 영어만 가능합니다.") String nickname) {}원래 DTO는 @Pattern(regexp = "^[a-zA-Z0-9가-힣]$ 였는데, 닉넴을 monkey→1 로 바꾸는 건 됐는데, 1→monkey로 바꾸니 변경이 안 됐다. 다른 블로그를 보니 ..
yunjae62
'자바' 태그의 글 목록