전체 글

은탄이 아닌 레포지토리
https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크 www.acmicpc.net 📝문제 📝풀이 이 문제의 핵심은 그리디하게 접근해서는 풀 수 없는 문제이다. 반례) 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0..
·Backend/JPA
ORM 개요 OOP 시대에 객체를 RDBMS에 관리하다 보니 SQL 중심적인 개발을 하게 됨으로써 나타나는 문제점들을 해결하기 위해 도입. 객체는 ↔ RDBMS 사이를 매끄럽게 연결하여 SQL 의존성을 덜어내고 OOP 중점적으로 개발을 하는 것이 목표. JPA (Java Persistense Api) 현재 Java 진형의 ORM 표준으로 인터페이스이고 구현체는 Hibernate, EclipseLink, DataNucleus 등 그 중 Hibernate 가 우리가 흔히 쓰는 구현체이다. SpringDataJPA JPA를 한 단계 더 추상화 시켜 개발을 편하게 해주는 Spring에서 제공하는 인터페이스 JPA 구동방식 persistence.xml에 jdbc 관련 정보 ( driver, username, pa..
·Backend/Spring
폼 입력 유효성 검사하기 Validation 개요 사용자가 만약 특정 로직을 수행 했는데 잘못된 입력으로 인해 어플리케이션이 오작동을 하면 안된다. 그러므로 검증을 통해 처리해 줘야 함. Validation 사용 검증을 수행하기 위해선 다음과 같은 의존성 모듈이 필요 org.springframework.boot:spring-boot-starter-validation'검증을 위한 라이브러리는 두 가지가 있다. javax 표준 스펙(jsr-303) Bean Validator : 공식문서 hibernate validator : 공식문서 @Valid 는 annotation 이 javax 표준 검증기이고 컨트롤러 메소드 유효성 검사만 가능. @Validated 는 Spring 에서 지원해주는 검증기이고 다..
https://www.acmicpc.net/problem/15787 15787번: 기차가 어둠을 헤치고 은하수를 입력의 첫째 줄에 기차의 수 N(1 ≤ N ≤ 100000)과 명령의 수 M(1 ≤ M ≤ 100000)가 주어진다. 이후 두 번째 줄부터 M+1번째 줄까지 각 줄에 명령이 주어진다. www.acmicpc.net 📝문제 📝풀이 주어진 수의 범위가 커서 비트 마스킹으로 풀어야 하는 문제이다. 0000...00000 으로 총 21개의 0으로 기차의 상태를 체크한다. ( 해당 위치에 1번에 not 을 적용시킨 결과와 and 연산 적용 case 3 => >> 연산으로 한칸 밀어내고 not 연산을 적용시킨 ( 11111110) 과 and 연산 나올 수 있는 모든 경우를 카운트한다. 참고) 비트마스크 연..
https://www.acmicpc.net/problem/1052 1052번: 물병 지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번 www.acmicpc.net 📝문제 풀이 경우의 수 를 하나씩 따져보면 -1 을 출력할 일은 없다. 우선 물통을 안사고 최대한 합친다고 해보자 주어진 n 이 다음과 같을 때 하나씩 보자. case 1 : 0 case 2 : 1 case 3 : 2 1 case 4 : 4 case 5 : 4 1 case 6 : 4 2 ... 남는 물병이 점점 늘어난다. => 병이 모자랄 일은 x 그리고 2^n 의 갯수이면 물병을 사지 않아도 된다. ..
https://www.acmicpc.net/problem/17124 17124번: 두 개의 배열 정수 배열 A 와 B가 있다. A는 총 n개의 서로 다른 양의 정수를 포함하고 B는 총 m개의 서로 다른 양의 정수를 포함한다. A, B를 이용해서 길이가 n인 새로운 배열 C를 만들어보자. C[i] 는 배열 B에 있 www.acmicpc.net 📝문제 📝풀이 이분탐색 or 이진탐색 문제이다. 해당 위치를 기준으로 앞 뒤를 파악해야 하므로 lower higher 메서드를 제공해주는 TreeSet을 이용한다. B 배열이 기준이므로 B배열을 TreeSet으로 만든다음 A 배열 원소만큼 반복문을 돌린다. 찾은 결과 원소를 result 라고 하면 1. bSet 이 원소 e 를 가지고 있을 경우 => result = ..
https://www.acmicpc.net/problem/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 📝문제 📝풀이 DFS 완전 탐색 문제이다. 중요한건 배열을 미리 clone 시켜놓고 탐색을 진행하고나서 다시 백트래킹 할 때 복제해둔 배열로 원복하는 것. 물고기가 움직일 때 : moveFish 1. 해당위치에 물고기가 없는 경우 => 단순 물고기만 이동 2. 해당위치에 상어가 있는 경우 => 이동 x 3. 그 외 => 두 물고기위 위치를 swap 상어를 기준으로 dfs 를 호출..
https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 📝문제 📝풀이 DP 를 활용한 문제이다. 우선 1~9 까지는 한자리 수 니깐 1 이다. 여기서 2번째 자리수는 다음과 같은 상황이 나온다. 0 + ? 1 + ? 2 + ? 3 + ? 4 + ? ... 9 + ? 여기서 ? 에 올 숫자는 이전 숫자보다 +1 또는 -1 이다. 그런데, 예외가 있다. 만약 9 가 나왔다면 다음은 무조건 8만 나와야 한다. ( 98 ) 그리고 0 이라면 이전은 다음건 1만 나와야 한다. 예를들어 10 ? 이 경우엔 다음수는 1만 가능 => 101 그럼 끝자리 경우 자체가 결정자가 될수..
김까따
kimkata's Devlog