분류 전체보기 277

뒤에 있는 큰 수 찾기 [자바]

🧫 문제 분석✔️ 출처뒤에 있는 큰 수 찾기 level 2📖 문제 스택 구조를 써야될거같은 느낌이 든다.  스택이 비어있다면 숫자를 넣는다.  스택이 비어있지 않다면 1. 스택의 TOP 원소와 현재 숫자를 비교해서 더 크다면 그 수가 뒷 큰 수 이다.2. TOP원소를 꺼내서 numbers에 있었던 당시 인덱스를 answer 배열의 인덱스에서 뒷 큰 수를 넣어준다.이를  1번이 false일 때까지 반복한다. 마지막으로 스택에 남은 뒷 큰 수가 없는 숫자들은 -1로 처리해준다. 🔅 문제 풀이 import java.util.Stack;class Solution { // 스택을 이용 // idx를 함께 저장 // 스택 top 원소 뒷 큰수 넣고, pop() public int[] s..

programmers/Lv 2 2025.01.16

피로도 [자바]

🧫 문제 분석✔️ 출처피로도 level 2📖 문제 현재 피로도 k >= 최소 필요 피로도 인 조건을 따져서 백트래킹 완전탐색을 하면 된다. (최소 필요 피로도 >= 소모 피로도) 문제에서 던전 개수가 8 이하이기에 완전탐색을 해도 시간복잡도가 괜찮을 거 같다는 생각이 들었다.  🔅 문제 풀이import java.util.Arrays;class Solution { // 현재 피로도 (k), [최소 필요 피로도, 소모 피로도] // 최필피 >= 소피 boolean[] visited; int max = 0; public int solution(int k, int[][] dungeons) { visited = new boolean[dungeons..

programmers/DFS-BFS 2025.01.16

혼자서 하는 틱택토 [자바]

🧫 문제 분석✔️ 출처혼자서 하는 틱택토 level 2📖 문제 단순 구현 문제인듯 하다. 간단하다. 머쓱이가 잘못 둔것과 별개로 그저 현재 주어진 게임판이 나올수 있는 게임 상황인지 아닌지만 판단하면 된다.  내가 생각했을 때 나올 수 없는 상황을 생각해봤다.  나올 수 없는 상황O의 개수 - 2 >= X 개수 O의 개수 O가 빙고했는데 X의 개수가 O와 같거나 클때X가 빙고했는데 O의 개수가 클때O 빙고가 우선권을 가짐 (O 빙고와 X빙고 둘다 있을 경우)  처음 O와 X의 개수를 구하고 위 2가지 경우에 대해서 체크한다음 이상이 없다면가로, 세로, 대각선 빙고를 체크해서 아래 2가지 경우에 대해서 체크한다.  🔅 문제 풀이class Solution { // 나올 수 없는 상황 // O..

programmers/Lv 2 2025.01.14

리코쳇 로봇 [자바]

🧫 문제 분석✔️ 출처리코쳇 로봇 level 2📖 문제 BFS 문제로 다른점은 한방향으로 쭉 가야한다는 것과D라는 장애물이나 가장자리 즉, 배열의 범위를 넘어서는 곳을 만나면 멈춘다는 것이다.  장애물을 만나거나, 가장자리 (배열 범위)를 넘어선 곳을 만날때 멈춘 자리가 G(목표지점) 인지 확인하면 되는 단순한 문제이다. 🔅 문제 풀이import java.util.Queue;import java.util.LinkedList;class Solution { boolean[][][] visited; int[] dx = {0, 0, 1, -1}; int[] dy = {1, -1, 0, 0}; int answer = 0; class Token { int y; ..

programmers/DFS-BFS 2025.01.09

광물 캐기 [자바]

🧫 문제 분석✔️ 출처광물 캐기 level 2📖 문제 백트래킹 문제로 곡괭이의 내구도 :  5한 번 선택한 곡괭이는 터질때까지 사용광물은 주어진 순서대로 채광 종료 조건은 모든 곡괭이 내구도 0 이거나 모든 광물을 채광했을 경우 이다.이때 최소 필요도를 구하는 것이 이 문제의 답이다.  곡괭이 하나 선택하고, 최대 5개 캐고 하면서 백트래킹 하면 된다. 🔅 문제 풀이class Solution { // 0 : 다이아, 1 : 철 , 2: 돌 int[][] fatigue = {{1, 1, 1}, {5, 1, 1}, {25, 5, 1}}; int minFatigue = Integer.MAX_VALUE; public int solution(int[] picks, String[]..

programmers/DFS-BFS 2025.01.08

연속된 부분 수열의 합 [자바]

🧫 문제 분석✔️ 출처연속된 부분 수열의 합 level 2📖 문제 비 내림차순 정렬 : 오름차순 정렬 흔한 투 포인터 문제이다. 투 포인터로 값을 합산하고 k와 비교하여 크다면 앞 포인터를 움직이고 그만큼 빼고,작다면 뒤 포인터를 움직이고 그만큼 더한다. 짧은 길이의 수열 인덱스만 갖는 배열을 준비한다. 배열의 길이가 100만까지니까 1000001 까지 해서 최댓값으로 초기에 설정한다.  투 포인터의 합계가 k와 같다면 앞 포인터 인덱스 - 뒤 포인터 인덱스 한 값이 짧은 길이의 수열 인덱스 배열과 비교하여 가장 짧은지 확인하는데 같다면 넘어가고, 더 짧다면 갱신해주면된다. 자세한건 코드를 참조    🔅 문제 풀이class Solution { // 투 포인터 문제 예상 // 연속된 부분 ..

programmers/Lv 2 2025.01.04

두 원 사이의 정수 쌍 [자바]

🧫 문제 분석✔️ 출처두 원 사이의 정수 쌍 level 2📖 문제 많이 틀렸고, 질문도 보면서 참고하면서 풀었다.  처음에는 규칙이 있나 해서 규칙을 찾아서 해봤는데 그건 작은 값이였을때만이여서 의미 없었고,임의의 좌표를 생성하고 그 좌표까지의 거리가 r1보다 크면서 r2 보다 작은 것을 찾는 방식을 했는데 당연히 O(n^2) 라서 안된다.   핵심은 두원의 특정 x값일 때 두 원의 y값 사이를 구하는 것이다. (혹은 특정 y값일 대 두원 사이의 x값)  중요한 것은 r2의 경우 r2의 y값을 내림처리하고r1의 y값을 올림 처리해야한다.  x =1 일때 뿐만 아니라 그외에도 원의 방정식에서 x값을 넣어 구한 해당 원의 y값은 x = 0, y = 0 일때를 제외하고는 해당 원의 반지름보다 작다. r2를..

programmers/Lv 2 2025.01.03

요격 시스템 [자바]

🧫 문제 분석✔️ 출처요격시스템 level 2📖 문제 핵심은 A 나라의 폭격 미사일을 모두 요격하면서, 요격 미사일 개수가 최소가 되게하는 것이다.최소한의 비용으로 최대한의 효율 즉, 탐욕법이라고 볼 수 있다. 또한 요격 미사일은 개구간 (s, e)에서 s, e위치에서 요격 미사일로 요격 불가능하다. 제한사항을 보면 0부터 1억까지 s와 e가 분포되어있기에 단순히 미사일이 지나간 좌표를 배열로 만들어서 카운트하는 것은 불가능하다는 것을 알 것이다.  그렇다면 참고해볼 것은 targets의 길이가 50만이라는 점이다. 뭔가 배열 정렬, 혹은 탐색 등으로 문제 풀이를 생각해보는 것이다.  필자는 고민해보다가 A나라의 폭격 미사일들을 s(시작 좌표)로 정렬그리고 하나의 폭격 미사일의 범위에 대해서 다른 미..

programmers/Lv 2 2024.12.30

PyTorch로 모델 실행시 발생한 문제

validate_repo_id HFValidationErrorvalidate_repo_id raise HFValidationError( huggingface_hub.errors.HFValidationError: Repo id must use alphanumeric chars or '-', '_', '.', '--' and '..' are forbidden, '-' and '.' cannot start or end the name, max length is 96: './stable-diffusion-v1-5-512-finetuned-epoch10'.` 프로젝트 중 팀원이 파인튜닝한 Stable-Diffusion 모델 파일을 받아서 로컬에서 돌릴려 하였는데 이러한 에러 로그가 남았다.pipe = Diffus..

문제해결 2024.12.19

스프링 부트 - 자동 구성

✔️ 자동구성 요약datasource, jdbcTemplate등 이런 라이브러리에 있는 것들이 스프링 빈으로 자동 등록된다 . 그 이유는 스프링 부트의 자동 구성(Auto Configuration)이라는 기능을 제공하기 때문이다.먼저 자동 구성 없이라이브러리를 등록하고 사용해보자. 순수 라이브러리 사용순수 라이브러리를 사용하려면 jar파일을 project/libs 폴더에 넣는다build.gradle 에서 implementation files('libs/xx.jar') 로 추가한다.그리고 설정 클래스를 만들어서 직접 @Bean으로 수동 등록해줘야한다.   만약 많은 라이브러리를 손수 등록하려하면 정말 많은 시간을 사용해야할 것이다.스프링 부트의 자동 구성 기능을 쓰면 알아서 등록해준다. 한번 알아보자  자..