본문 바로가기

전체 글69

Java의 Long, long의 값의 비교 한 줄 요약 long의 값 비교는 == Long의 값 비교는 .equals() 이 글의 발단은 LeetCode : 3834 에서 시작합니다.여기서 대문자, 소문자 차이라고 생각하시는 분들은 그대로 이 창을 닫으시면 됩니다(^^)일단은 문제의 해결 코드입니다.class Solution { public List mergeAdjacent(int[] nums) { List list=new ArrayList(); list.add((long)nums[0]); for(int i=1;i1&&list.get(list.size()-2).equals(list.get(list.size()-1))){ long sum=(long)list.get(list.siz.. 2026. 2. 8.
DB 동기 비동기 연결 경험과 메모리 부족 현상 해결 경험(AI를 믿지 말자) 우선 혹시나 지금은 뭐 써야 하나요라고 물으신다면 PostgreSQL에 Psycopg3가 나왔다고 하며, 현재 Psycopg3는 Asyncio를 기본으로 만들어졌기에 Psycopg3를 사용하시는 게 정신 건강에 매우 이로우실 겁니다.Psycopg2? Asyncio?Python에 대한 경험이 많지 않은 나는 PlayMCP 공모전 출품 당시 DB를 연결하는 방법에 대해서 고민이 많았습니다.기존의 Spring boot의 경험과 달리 Python에서의 개발 경험은 거의 없었고 SQLAlchemy나 ORM을 사용할지, 아니면 SQL을 이용하는 라이브러리를 사용할지 고민도 많았기 때문입니다.동기, 비동기를 이론으로만 접해봤을 주요 컴퓨터공학도들은… 동기와 비동기를 잘 이해하지 않으면 열심히 여러분이 구축해놓은 시스.. 2026. 2. 6.
Spring boot 4.0.0에서 환경 변수 사용하기 지금까지 Spring-dotenv로 Spring 3.x.x에서 제대로 꿀빨며 환경 변수를 사용하고 있었지만,Spring 4.0.0에서는 모종의 이유로 인해서 Spring-dotenv가 실행되지 않아 Datasource에 원하는 값들이 제대로 전해지지 않는 문제가 있습니다.아래의 방식으로 미루어보건대 Spring-dotenv가 실행되는 순서에 문제가 있는듯 합니다. 그래서 Spring-dotenv가 아닌 java-dotenv를 이용해서 환경변수를 주입하기 위해서 아래의 의존성을 설치합니다. implementation 'io.github.cdimascio:dotenv-java:2.2.4' 이후 Spring의 Main함수에서 아래대로 입력합니다.public static void main(String[] .. 2025. 12. 8.
백준 11003 : 최솟값 찾기 https://www.acmicpc.net/problem/11003 이번엔 백준 11003 : 최솟값 찾기다 기본적으로는 PriorityQueue의 원리로 풀어야하는 것이 맞다.그러나 PriorityQueue의 단점 중 하나는 우선순위 큐의 peek원소가 아닌 다른 원소를 뽑아내는 과정은 O(n)이라는 것이다.따라서 PriorityQueue만으로는 문제를 풀기 어렵다. PriorityQueue가 안된다면 Queue의 형태로는 구할 수 있을 것인가? 불가능하다. 역시 Queue 역시 출구가 하나뿐이다. 선입선출의 자료구조이므로 .remove Method를 사용한다고 하더라도 O(n)이 걸린다.그래서 Deque을 써야한다.Deque은 FIFO(First in First Out) LIFO(Last In Fir.. 2025. 7. 10.
백준 1644 : 소수의 연속합 https://www.acmicpc.net/submit/1644/95941199오늘 푼 따끈따끈한 문제다.특히 한 번에 풀게 되어 기분이 매우 좋다. 앞으로도 계속 한번에 풀 수 있도록 조금 더 노력해야지. 이 문제는 소수의 연속합이라면서 소수를 알려주지 않는다.따라서 문제를 풀 때 소수를 필히 구해야 한다. 이때, 4백만이라는 완전 탐색에 다소 괴랄한 수가 있어 조금 걱정을 했으나, 아래와 같이 소수를 구할 경우 2중 for문에도 불구하고 O(nlogn)으로 결과를 뽑아낼 수 있을 거라고 생각했다.먼저 multiple로 증감자를 만든 후, 변화되는 수를 idx로 두게 되면idx의 시작점이 2인 경우, 2를 제외하고 4,6,8,10 등이 사라지게 된다.기본적인 원리는 에라토스테네스의 체다. 그렇게 소수를.. 2025. 7. 4.
백준 1766 : 문제집 https://www.acmicpc.net/problem/1766이번 문제는 문제집이란 것으로 시작점을 파약해야한다는 점문제를 푸는 순서가 존재한다는 점으로 미루어보아 위상 정렬로 문제를 접근했다. 그러나 초기 접근은 DFS로 접근을 했는데, 기초적인 위상정렬의 형태로는 문제가 풀리지 않았기 때문이다.이유는 진입 차수가 0인 것을 모두 Queue에 넣어 순서를 지키며 위상정렬을 하는 것이 기본적인 형태였다면, 여기서는 숫자가 작다면 더 빨리 풀 수 있는 조건이 있었기 때문이다.이 과정 때문에 PriorityQueue를 사용해서 순서를 지키며 문제를 풀었다. 구해야 할 것문제를 푸는 순서문제 풀이 순서1. 입력을 받으면서 a->b로 입력 시 b를 인덱스로 하는 진입 차수 배열 inOrder[b]를 증가한다.. 2025. 7. 2.
반응형