본문 바로가기

전체 글1129

[백준, Java] 15573번, 채굴(이분 탐색, BFS) 문제 링크 15573번: 채굴 첫째 줄에 N, M, K가 주어진다. (1 ≤ N, M ≤ 1000, 1 ≤ K ≤ N × M) 둘째 줄부터 맨 위의 광물들부터 순서대로 N줄 동안 M개의 광물의 강도 Si, j가 주어진다.(i = 1, 2, ..., www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. N × M 크기의 광물들이 존재하며, 각 광물에는 강도가 존재합니다. 2. 채굴기의 성능 이하의 광물만 채굴이 가능합니다. 3. 광물을 채굴.. 2023. 12. 22.
Spring Cache를 파헤쳐 보자!(WebMvc, WebFlux) 상황 여러 로직에서 간단한 정보를 조회가 반복되어 DB I/O 지속적으로 생기는 상황 자주 변하지도 않는 정보를 계속 I/O 생기도록 유지하는 것이 맞는가?? 프로젝트 시연 중, 갑자기 조회하는 로직에서 시간을 무지막지하게 잡아먹는 상황 원인 파악하기에는 시간이 부족하고…. Redis와 같은 외부 캐시 서버를 사용할 상황이 아닐 때…. Redis는 너무 Over-Spec이야 어떻게 해야 하지??? ► Spring Cache!!! 원인을 파악할 시간이 없어… 일단 조회 관련 급한 불은 꺼야 하는데 ► Spring Cache!!! Caching? 오랜시간이 걸리는 작업의 결과를 저장해서 시간과 비용을 필요로 회피하는 기법 캐시가 있을 때 1 → 2 → 3 → 6 캐시가 없을 때 1 → 2 → 4 → 5 → .. 2023. 12. 13.
[백준, Java] 2866번, 문자열 잘라내기(이분 탐색) 문제 링크 2866번: 문자열 잘라내기 첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다. 가장 처음에 주어지는 테이블에는 열을 읽어서 문자 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. R × C 행렬에는 알파벳 소문자 원소가 존재합니다. 2. 문자열을 만들 때에는 가장 위의 행부터 아래로 내려가면서 문자열을 만듭니다. 3. .. 2023. 12. 12.
[백준, Java] 1517번, 버블 소트(세그먼트 트리) 문제 링크 1517번: 버블 소트 첫째 줄에 N(1 ≤ N ≤ 500,000)이 주어진다. 다음 줄에는 N개의 정수로 A[1], A[2], …, A[N]이 주어진다. 각각의 A[i]는 0 ≤ |A[i]| ≤ 1,000,000,000의 범위에 들어있다. www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 수열 A에 대해서 버블 정렬을 진행했을 때 Swap이 발생하는 횟수를 결과로 출력합니다. 2. A[i]의 값은 Integer 범위 안에 .. 2023. 12. 11.
[백준, Java] 12991번, 홍준이의 행렬(이분탐색) 문제 링크 12991번: 홍준이의 행렬 홍준이에게는 길이가 N인 수열 2개 A와 B가 있습니다. 이때 N2 크기의 행렬을 만드는데, 행렬의 i행 j열의 원소는 수열 A의 i번째 원소와 수열 B의 j번째 원소의 곱으로 정의합니다. 홍준이는 이 원 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 길이가 N인 수열 A와 B가 있습니다. 2. N² 크기의 행렬을 만들 때 (i, j)의 원소는 "A의 i번째 수 × B의 j번째 수"입니다. 3.. 2023. 12. 9.
[백준, Java] 1497번, 기타콘서트(백트래킹) 문제 링크 1497번: 기타콘서트 첫째 줄에 기타의 개수 N과 곡의 개수 M이 주어진다. N은 10보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 기타의 이름과 기타가 연주할 수 있는 곡의 www.acmicpc.net 주의사항 JAVA를 사용하여 프로그램을 사용하였습니다. 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다. public class Main{ public static void main(String[] args){ } } 문제 설명 접근 방법 이 문제에 핵심 1. 각 기타는 연주할 수 있는 노래 목록이 존재합니다. 2. 각 기타의 이름이 다르며, 'Y'는 연주 가능함을 뜻하고, 'N'은 연주 불가능을 뜻합니다. 3.. 2023. 12. 9.