분류 전체보기 319

백준 20207번 : 달력 [자바]

🧫 문제 분석 ✔️ 출처20207번 달력 골드 5 📖 문제 열 : 365 + 2 (1부터 365까지, 그리고 마지막에 값이 남은채로 계산되는 거 방지용)행 : 중복 일정 가능성 1000개높이 배열 하나 생성 입력 값은 시작 날짜가 빠른 순, 같다면 길이가 긴 순으로 오름차 정렬→ 근데 시작 날짜가 빠른 순으로 해도 된다. 일정에 각 날짜 기간 저장, 중복이라면 현재 행 + 1에 날짜 기간 저장0 행에는 중첩 날짜를 이어서 저장높이 배열에는 각 날짜의 높이 최댓값을 저장 그리고 0행의 일정을 쭉 탐색해서 길이를 구하고 최대 높이를 구한다음 길이 * 높이를 더해 코팅지 면적을 구한다. 🔅 문제 풀이import java.io.*;import java.util.*;public class Main { ..

baekjoon/Greedy 2025.02.03

미로 탈출 [자바]

🧫 문제 분석✔️ 출처미로 탈출 level 2📖 문제 단순 BFS이며,레버를 당기고 난 후 출구로 나갈 수 있으며레버를 당기지 않아도 출구 지역은 지나다닐 수 있고모든 지점은 여러 번 지나갈 수 있다.  나는 출발점을 찾고 거기서 부터 BFS로 L를 탐색한다음현재 위치에서 다음 위치가 레버이면서 아직 레버를 안당겼다면여태까지 방문한 기록을 없애고, 큐를 초기화 시킨 다음 레버를 당기고(레버 위치를 큐에 담고), 레버 위치에 방문했다고 표시한다. 그리고 레버 위치에서부터 시작하게끔 현재 위치에서 탐색을 중지시킨다.(break)레버 위치에서부터 다시 BFS 탐색을 해서 E인 탈출구를 찾는다. 🔅 문제 풀이import java.util.*;class Solution { // 1. 레버로 이동 ..

programmers/DFS-BFS 2025.02.03

배달 [자바]

🧫 문제 분석✔️ 출처배달 level 2📖 문제  거리 값이 존재하는 그래프 문제이 문제를 통해 다익스트라, 플로이드 워샬 등거리 값이 존재하는 그래프의 탐색이 얼마나 부족한지 깨달았다. 해당 문제를 BFS, 플로이드 워샬, 다익스트라로 풀어보았다. 그리고 거리가 있는 그래프에 대한 간단한 정리를 할 예정이다.  🔅 문제 풀이 - BFSimport java.util.*;class Solution { // N개의 마을, K : 갈 수 있는 거리 // BFS 탐색으로 K - 각 마을까지의 비용 >= 0 인 곳을 방문 int[] visited; public int solution(int N, int[][] road, int K) { int[][] graph = n..

programmers/DFS-BFS 2025.02.02

숫자 카드 나누기 [자바]

🧫 문제 분석✔️ 출처숫자 카드 나누기 level 2📖 문제 영희, 철수 각각 하나의 카드를 선택해서 소인수 분해 후분해한 수들을 영희 카드와 철수카드를 나눠본다.  영희 카드 중 하나를 소인수분해 했을 경우영희 자신의 모든 카드 수는 소인수로 나눠지면서, 철수 것은 나눠지면 안된다.  반대의 경우도 마찬가지이다.  🔅 문제 풀이import java.util.*;class Solution { // 가장 작은 수 선택후 소인수 분해 // 분해된 수들로 해당 배열을 다 나눠본다. boolean으로 나눠지는지 확인 // 다 나눠지면 상대 카드들을 나눠본다. boolean으로 나눠지는지 확인 int max = 0; public int solution(int[..

programmers/Lv 2 2025.02.01

호텔 대실 [자바]

🧫 문제 분석✔️ 출처호텔 대실 level 2📖 문제 시작 시간을 기준을 정렬후빈 방이면 방을 배정해주고, 끝나는 시간 + 10 을 해준다. 그리고 다음 예약자는 우선, 배정된 방중 퇴실후 시간대인 방을 찾는다.없다면 새로운 빈 방을 배정해준다.  이를 반복하면 된다.  예약 시간이 자정을 넘어가는 경우는 없다.  🔅 문제 풀이import java.util.*;class Solution { public int solution(String[][] book_time) { // 최대 룸 개수, 시-분 Integer[] time = new Integer[1000]; // 시작 시간 순 정렬 Arrays.sort(book_time, (o1, o2) -..

programmers/Lv 2 2025.02.01

마법의 엘리베이터 [자바]

🧫 문제 분석✔️ 출처마법의 엘리베이 level 2📖 문제  우선 예제를 보고 생각해보면어떨 때는 올림이 좋고 어떨 때는 내림이 좋다. 2554는 16번2454는 어떨까?단순히 5라고 올리면 17번이 된다.  하지만 전부 내리면 15번이면 된다. 555를 예로 들어보자. 5를 내리면 15번이지만5를 다 올리면 +1 5번  = 560+10 4번 = 600+ 100 4번 = 1000- 1000 1번 = 0 14번 이 된다.  즉, 5가 핵심이다. 연속으로 5가 나오면 올리는 것이 좋고아니라면 내리는 것이 좋다.  뒤에 숫자부터 판별한다.  🔅 문제 풀이class Solution { // 현재 층수 + 버튼 수로 이동 // 0보다 작으면 안움직임 // 0층이 가장 아래층 //..

programmers/Lv 2 2025.01.30

소수 찾기 [자바]

🧫 문제 분석✔️ 출처소수 찾기 level 2📖 문제 numbers의 각 자릿수를 조합하여 숫자를 만들고 그 수가 소수인지 카운트  소수 판별 + 완전탐색 문제 핵심0으로 시작하지 않음2는 소수짝수는 소수가 아님조합된 수 중복 체크🔅 문제 풀이class Solution { boolean[] visited; boolean[] check = new boolean[10000000]; int answer = 0; public int solution(String numbers) { char[] num = numbers.toCharArray(); visited = new boolean[num.length]; dfs(..

programmers/DFS-BFS 2025.01.24

쿼드압축 후 개수 세기 [자바]

🧫 문제 분석✔️ 출처쿼드압축 후 개수 세기 level 2📖 문제 분할 정복 문제 처음은 전체를 다 돌아본다. for문으로 주어진 영역이 모두 같은 수 인지 확인 아니라면 4등분으로 영역을 나눠서 각각 영역별로 재호출영역 길이 / 2 한 값으로 4등분한다. 여기서는 행의 길이가 영역을 정한다. 비슷한 문제 포스팅 백준 1074번 : Z백준 1030번 : 프렉탈 평면백준 2447번 : 별 찍기 - 10백준 2448번 : 별 찍기 - 11🔅 문제 풀이class Solution { // 분할 정복 // for문으로 해당 영역 탐색 int[] count = new int[2]; public int[] solution(int[][] arr) { divAndConque..

programmers/Lv 2 2025.01.23

숫자 변환하기 [자바]

🧫 문제 분석✔️ 출처숫자 변환하기 level 2📖 문제 간단하지만 생각해볼게 좀 있는 문제최단경로 BFS로 풀어보자고 생각했다. 핵심x == y 일때,x로 y를 만들 수 없을때 bfs 탐색을 멈추는 조건중복 탐색 방지 (시간 초과 가능성)🔅 문제 풀이import java.util.Queue;import java.util.LinkedList;class Solution { // x -> y // x + n || x * 2 || x * 3 //bfs 최단 경로 boolean[] visited = new boolean[1000001]; public int solution(int x, int y, int n) { int answer = bfs(x,y,..

programmers/Lv 2 2025.01.21

스프링 부트 - 외부 설정과 프로필2

✔️ 스프링이 지원하는 외부 설정스프링이 지원하는 다양한 외부 설정 조회 방법Environment@Value - 값 주입@ConfigurationProperties - 타입 안전한 설정 속성 @Slf4jpublic class MyDataSource { private String url; private String username; private String password; private int maxConnection; private Duration timeout; private List options; // 생성자 // @PostConstruct 로 멤버변수 log 출력 }  # application.propertiesmy.datasource.u..