- [ Algorithm/알고리즘 ]다이나믹 프로그래밍2024-08-20 11:10:22다이나믹 프로그래밍이란? 다이나믹 프로그래밍은 복잡한 문제를 여러 하위 문제로 나누어 해결한 뒤, 그 결과를 결합하여 전체 문제를 해결하는 방법입니다. DP는 주로 중복된 하위 문제가 존재하는 경우에 사용됩니다. 같은 하위 문제를 여러 번 계산하지 않고, 이미 계산된 결과를 저장해두고 필요할 때 재사용하는 것이 핵심입니다.다이나믹 프로그래밍의 특징최적 부분 구조: 문제의 최적 해가 그 하위 문제들의 최적 해로 구성됩니다.중복된 하위 문제: 동일한 하위 문제를 반복해서 계산하지 않고, 한 번 계산한 값을 저장해서 재사용합니다. 다이나믹 프로그래밍의 접근 방식 - Java 구현 상향식 접근 (Bottom-Up) public class FibonacciDP { public static int fibona..
- [ Algorithm/백준 ][BOJ] 14501 : 퇴사 - java2024-08-20 09:28:48문제https://www.acmicpc.net/problem/14501문제풀이이 문제는 주어진 기간 동안 여러 상담 일정을 조정하여 얻을 수 있는 최대 수익을 계산하는 문제입니다. 각 상담은 특정 기간이 소요되며, 그 기간 동안 다른 상담을 진행할 수 없습니다. 목표는 상담 일정을 최적화하여 가능한 최대 수익을 얻는 것입니다. 동적 프로그래밍(DP)을 사용하여 각 날에 얻을 수 있는 최대 수익을 이전 날의 최대 수익과 비교하여 점진적으로 계산합니다.특정 날 i 에 상담을 수행할 수 있는 경우 상담을 진행하여 얻는 수익을 고려하여 해당 상담이 끝나는 날(i + t[i])에 최대 수익을 갱신소스코드import java.io.BufferedReader;import java.io.InputStreamReader..
- [ IDE/IntelliJ ]인텔리제이와 다른 IDE 간 프로퍼티 인코딩 문제 해결2024-07-25 14:09:321. 문제 발견아래와 같이 세팅 후 프로젝트를 진행 중 Eclipse를 사용하시는 팀원분께서 문제를 공유해 주셨다.https://djun95.tistory.com/11 Edit Custom Vm Options -> .vmoptions 파일 수정-Dfile.encoding=UTF-8-Dconsole.encoding=UTF-8위 두줄을 추가한다. * 탭 옵션을 찾기 어려운 경우 파일 탐색기능으로 'Edit Custom VM Options...' 를 찾" data-og-host="djun95.tistory.com" data-og-source-url="https://djun95.tistory.com/11" data-og-url="https://djun95.tistory.com/11" data-og-image=..
- [ Algorithm/알고리즘 ]카데인 알고리즘2024-07-16 09:00:54카데인 알고리즘이란?카데인 알고리즘은 연속 부분 배열의 최대 합을 구하는 효율적인 방법으로, 컴퓨터 과학과 알고리즘 문제 해결에서 자주 사용됩니다. 이 알고리즘은 O(n) 시간 복잡도를 가지며, 동적 계획법(Dynamic Programming) 접근법을 사용합니다.카데인 알고리즘의 원리카데인 알고리즘은 현재까지의 최대 부분 배열의 합을 유지하면서, 각 요소를 순차적으로 탐색합니다. 알고리즘은 두 가지 값을 유지합니다.현재까지의 최대 합 (max_so_far) : 지금까지 발견한 최대 부분 배열의 합현재 위치에서 끝나는 최대 합 (max_ending_here) : 현재 위치에서 끝나는 부분 배열 중 최대 합알고리즘 단계1. max_so_far와 max_ending_here를 배열의 첫 번째 요소로 초기화합..
- [ Algorithm/백준 ][BOJ] 1912 : 연속합 - java2024-07-16 08:48:29문제https://www.acmicpc.net/problem/1912문제풀이nowMax : 현재 위치까지의 최대 부분 배열 합을 저장overMax : 지금까지 발견된 전체 최대 부분 배열 합을 저장초기값으로 첫 번째 요소를 설정배열의 두 번째 요소부터 순회하며, 현재 요소를 시작으로 새로운 부분 배열의 합(arr[i])과 이전 부분 배열에 현재 요소를 추가한 합(nowMax + arr[i]) 중 더 큰 값을 nowMax에 저장overMax는 nowMax와 비교하여 더 큰 값을 저장하여 전체 최대 부분 배열 합을 유지소스코드import java.io.*;import java.util.StringTokenizer;public class _1912 { public static void main(Strin..
- [ Algorithm/백준 ][BOJ] 1254 : 팰린드롬 만들기 - java2024-07-04 13:44:15문제https://www.acmicpc.net/problem/1254문제풀이입력된 문자가 처음부터 팰린드롬인지 확인한다.아닐 경우 반복하여 검사하며 팰린드롬 구조로 만드는 작업을 해야 한다.앞부분 문자를 추출하여 뒤집고 뒷부분에 맞춘 후 팰린드롬인지 체크한다.팰린드롬이 될 때까지 추출하는 앞 문자 개수를 늘려간다.소스코드import java.io.*;public class _1254 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new Buffe..
- [ DataBase/Common ]보이지않는 비표시 문자와 SQL별 대처법2024-06-25 11:38:11제로 너비 공간이란? 제로 너비 공간(ZWSP)은 텍스트에서 눈에 보이지 않는 공백으로, 그 자체는 아무런 너비도 가지지 않지만 텍스트의 형식을 제어하는 데 사용됩니다. 이 문자들은 텍스트의 가독성을 해치지 않으면서도 데이터 처리 과정에서 문제를 일으킬 수 있습니다. 특히 SQL 데이터베이스에서는 데이터 무결성을 저해하거나 예상치 못한 결과를 초래할 수 있습니다. 주요 제로 너비 문자 종류 및 설명 제로 너비 공간 (Zero Width Space, ZWSP) - U+200B설명: 두 글자 사이에 보이지 않는 간격을 추가합니다. 줄 바꿈 지점을 표시하거나 텍스트를 구분하는 데 사용됩니다.용도: 줄 바꿈 허용 지점 표시, 언어별 단어 분리 제로 너비 비조인자 (Zero Width Non-Joiner, ZW..
- [ IDE/IntelliJ ]인텔리제이 XML 노란색 배경 표시 제거2024-06-25 10:25:321. Settings File탭의 Settings... > Editor > Inspections > sql 검색파란색 표시 2개 항목 체크 해제File탭의 Settings... > Editor > Color Scheme > General > Injected language fragmentBackground 체크 해제 No Data Sources Configured데이터 소스가 설정되지 않았음을 의미, 데이터 소스는 데이터베이스 연결을 설정하는 것을 의미하며, IntelliJ IDEA에서 SQL 쿼리를 실행하거나 데이터베이스 탐색기를 사용하려면 데이터 소스를 구성해야 합니다. SQL Dialect DetectionIntelliJ IDEA에서 SQL 코드를 작성할 때 사용되는 특정 데이터베이스의 SQL 변형..