전체 글 112

[BOJ][JAVA] 두 스티커-16937-완전탐색

📌 문제백준 두 스티커 | 실버 3#구현 #브루트포스 알고리즘 #기하학 #많은 조건 분기https://www.acmicpc.net/problem/16937  📌 문제 탐색하기입력값H * W 크기 모눈종이 스티커 N개출력값스티커가 붙여진 넓이의 최댓값모눈종이는 1*1 크기칸스티커가 접하는 것이 가능하고, 90도 회전시키는 것 가능모눈종이를 벗어나는 건 불가능  📌 알고리즘 설정문제에서 모든 입력값들이 100이하이므로, 최대 사이즈가 10000까지만 나올 예정스티커는 2개를 골라야하므로, n이 100이니까 100 * 99 = 9900개의 경우의 수가 나올 예정이때, 스티커가 모눈종이 H*W 칸에 또 들어가야하므로 이 경우를 세야함스티커는 회전이 가능하다고 했으므로, 총 4가지 방안으로 스티커 부착 가능..

알고리즘/백준 2024.11.18

[BOJ] 99클럽 코테 스터디 12일차 TIL : 7569-토마토-BFS

문제백준 토마토  | 골드 5#그래프 이론 #그래프 탐색 #너비 우선 탐색https://www.acmicpc.net/problem/7569 📌 문제 탐색하기보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 것 → 익어짐1 : 익은 토마토0 : 익지 않은 토마토-1 : 토마토가 들어있지 않음상하좌우, 앞, 뒤 여섯 방향에 영향을 줄 수 있다.며칠이 지나면 다 익게 되는지 최소 일수를 확인한다.단, 저장될 때부터 모든 토마토가 익어 있으면 0 출력토마토를 모두 익히지 못하는 상황일 경우 -1 출력 📌 알고리즘 선택최소한의 일수로 모든 토마토가 익어야하므로 DFS/BFS로 완전탐색을 진행할 수 있다.현재 상자의 크기, 상자의 수가 최대 100, 100, 100이므로 최대 10 ^ 6이 ..

알고리즘/TIL 2024.11.08

[BOJ] 99클럽 코테 스터디 9일차 TIL : 7562-나이트의 이동-BFS

문제백준 나이트의 이동  | 실버 1#그래프 이론 #그래프 탐색 #너비 우선 탐색https://www.acmicpc.net/problem/7562 문제 탐색* 나이트가 한 번에 이동할 수 있는 칸에 따라 이동해서 목표지점에 몇번만에 갈 수 있는지* 최소로 움직이는 경우를 고르는 것이므로 BFS로 풀 수 있음  코드 설계1. 문제의 입력 받기 (BufferedReader, StringTokenizer)2. x, y 변수를 담을 Point 클래스 구현3. bfs 로직 구현    canGo로직 구현 (움직였을 때, graph 내부에 존재하는지)4. 예제 출력을 StringBuilder로 받아서 메모리 줄이기  시도 회차 수정 과정1회차* 처음에 횟수 세는 부분을 빠트려서 graph 배열을 새롭게 만들었다. 2..

알고리즘/TIL 2024.11.05

99클럽 코테 스터디 5일차 TIL : BFS

문제백준 알고리즘 수업 - 너비 우선 탐색 1  | 실버 2#그래프 이론 #그래프 탐색 #정렬 #너비 우선 탐색https://www.acmicpc.net/problem/24444 풀이 & 코드* 전형적인 BFS 문제* 문제에서 list 내부의 숫자들을 '오름차순'으로 관리한다 했으므로, Collections.sort를 진행해준다* 1,2,3,4,5 가 예시일 경우, 답변은 1이 언제, 2가 언제 등 각 노드가 언제 연결되는지를 결정해줘야 하므로 visited 배열에 cnt로 체킹해준 값을 넣어준다. import java.util.*;import java.io.*;public class q24444 { static int n,m,r = 0; static List> graph = new Array..

알고리즘/TIL 2024.11.01

99클럽 코테 스터디 4일차 TIL : DFS

문제백준 알고리즘 수업 - 깊이 우선 탐색 1  | 실버 2#그래프 이론 #그래프 탐색 #정렬 #깊이 우선 탐https://www.acmicpc.net/problem/24479 풀이 & 코드* 전형적인 DFS 문제* 문제에서 list 내부의 숫자들을 '오름차순'으로 관리한다 했으므로, Collections.sort를 진행해준다* 1,2,3,4,5 가 예시일 경우, 답변은 1이 언제, 2가 언제 등 각 노드가 언제 연결되는지를 결정해줘야 하므로 visited 배열에 cnt로 체킹해준 값을 넣어준다. import java.io.*;import java.util.*;public class Main { static int[] visited; static List> graph; static int..

알고리즘/TIL 2024.11.01

업캐스팅, 다운캐스팅에 대해

목표코딩테스트 공부하는 중, 이진탐색 문제를 풀면서 언제 (long) 을 써야하고 언제 Long.parseLong을 써야하는지를 암기적으로 알고 있는 상태를 발견 후, 이를 정확히 알고 넘어가고자 포스팅한다. 원시타입, 참조타입⭐ 원시타입 (primitive type)정수, 실수, 문자, 논리 리터럴 등의 실제 데이터 값을 저장하는 타입ex) Boolean Type (boolean), Numeric Type(short, int, long, float, double, char)  ⭐ 참조타입 (reference type)객체(Object)의 번지를 참조(주소를 저장)하는 타입으로 메모리 번지 값을 통해 객체를 참조하는 타입example) 문자열, 배열, 열거, 클래스, 인터페이스ex) Class Type,..

99클럽 코테 스터디 3일차 TIL : 이분탐색

문제프로그래머스 입국심사  | LEVEL 3#이분탐색 #수학https://school.programmers.co.kr/learn/courses/30/lessons/43238 풀이 & 코드* 각 심사관 별 심사시간이 담긴 times 배열 오름차순 정렬    * left = 0초(최소)    * right = times[times.length-1] * (long) n 초 (최대 n명 * 가장 오래걸리는 시간) * 이분탐색 while로 진행    * mid = left + right / 2    * mid일때, 각 심사대 별로 주어진 시간동안 몇명 심사할 수 있는지 count      ex) mid = 30 times[7,10] ⇒ 30/7 + 30/10 = 7 * count한게 n보다 작을 경우 = answ..

알고리즘/TIL 2024.10.30

99클럽 코테 스터디 2일차 TIL : 이분탐색

문제백준 11561번  | 실버 3#이분탐색 #수학https://www.acmicpc.net/problem/11561 풀이 & 코드처음에는 문제 이해가 안가서, 징검다리가 1개 있는 경우부터 ~ 13개 있는 경우까지 직접 계산해봤다.예를 들어, 징검다리가 13개인 경우는 1번, 4번, 8번, 13번을 건너 총 4개의 징검다리를 건너고 이의 거리는 1 3 4 5가 된다. * 문제에서 N은 10^16이라 주어졌기에, 일반적인 int로 풀면 타임아웃이 발생할 것 같아, long으로 표현했다.* 두 번째 점프부터 이전 점프 + 1 ~  를 점프한다는 점에서 등차수열을 떠올림* 등차수열의 합 공식 = (n * (n+1)) / 2* 결국, 마지막 N번째 징검다리 이전에 최대한 많은 징검다리를 건너야 하므로, N 이..

알고리즘/TIL 2024.10.29

Continue Extension을 활용한 AI Coding 평가

목표vscode 및 eclipse에서 제공하는 continue extension에 대한 조사 및 구축VSCode Continuehttps://github.com/continuedev/continue오픈 AI-code assistant로, LLM을연결해 커스텀 code completion과 chatting을 사용할 수 있는 툴VSCode와 JetBrain의 플러그인 방식으로 설치 가능SaaS 스타일의 LLM API뿐만 아니라, 로컬이나 원격에 구축한 LLM 모델을 API 호출하여 응답을 받아올 수 있음Continue Assistant Model 주요기술Code Suggestion : 작성 중인 맥락과 패턴을 바탕으로 다음에 들어올 수 있는 코드 추천Code Completion : 작성 중인 맥락과 패턴을 ..

AI 2024.10.21

Prompt란 ? (feat. LLM)

💡 LLM과의 상관관계LLM은 기존의 머신러닝 모델과는 달리, 인간의 언어를 이해하고, 사용자로부터 제공 받은 지시사항에 따라 인간과 유사하게 작업을 수행하는 능력을 갖춤LLM은 기계학습 알고리즘을 통해 구현됨LLM은 텍스트 형태의 입력을 통해 사용자의 의도를 파악하고, 적절한 반응을 생성함💡 Prompt란언어 모델에 텍스트를 제공하는 것사용자의 지시사항, 질문, 요청 등이 담길 수 있음모델이 이를 해석하고, 처리해 원하는 출력을 얻을 수 있음ex) ChatGPT와 소통하기 위한 텍스트창💡 Prompt EngineeringContext Window일반적으로 몇 천 단어의 정보를 처리하고, 저장할 수 있는 것모델이 사용자의 입력을 이해하고, 과거의 정보를 현재의 상황에 적용하게 해줌Prompt문장 (..

AI 2024.08.28