본문 바로가기

전체 글

(227)
11501 - 주식[S2] 문제https://www.acmicpc.net/problem/11501 홍준이는 요즘 주식에 빠져있다. 그는 미래를 내다보는 눈이 뛰어나, 날 별로 주가를 예상하고 언제나 그게 맞아떨어진다. 매일 그는 아래 세 가지 중 한 행동을 한다.주식 하나를 산다.원하는 만큼 가지고 있는 주식을 판다.아무것도 안한다.홍준이는 미래를 예상하는 뛰어난 안목을 가졌지만, 어떻게 해야 자신이 최대 이익을 얻을 수 있는지 모른다. 따라서 당신에게 날 별로 주식의 가격을 알려주었을 때, 최대 이익이 얼마나 되는지 계산을 해달라고 부탁했다.예를 들어 날 수가 3일이고 날 별로 주가가 10, 7, 6일 때, 주가가 계속 감소하므로 최대 이익은 0이 된다. 그러나 만약 날 별로 주가가 3, 5, 9일 때는 처음 두 날에 주식을 하..
14284 - 간선 이어가기 2[G5] 문제https://www.acmicpc.net/problem/14284 정점 n개, 0개의 간선으로 이루어진 무방향 그래프가 주어진다. 그리고 m개의 가중치 간선의 정보가 있는 간선리스트가 주어진다. 간선리스트에 있는 간선 하나씩 그래프에 추가해 나갈 것이다. 이때, 특정 정점 s와 t가 연결이 되는 시점에서 간선 추가를 멈출 것이다. 연결이란 두 정점이 간선을 통해 방문 가능한 것을 말한다.s와 t가 연결이 되는 시점의 간선의 가중치의 합이 최소가 되게 추가하는 간선의 순서를 조정할 때, 그 최솟값을 구하시오. 풀이기본적인 다익스트라 연습용 문제.드디어 본격적으로 그래프 문제에 사용되는 Node와 Edge, 그리고 PQ 사용에 익숙해졌다.작년 이후로 오랜만에 그래프가 두렵지 않았다.코드import ja..
17396 - 백도어[G5] 문제https://www.acmicpc.net/problem/17396유섭이는 무척이나 게으르다. 오늘도 할 일을 모두 미뤄둔 채 열심히 롤을 하던 유섭이는 오늘까지 문제를 내야 한다는 사실을 깨달았다. 그러나 게임은 시작되었고 지는 걸 무척이나 싫어하는 유섭이는 어쩔 수 없이 백도어를 해 게임을 최대한 빠르게 끝내기로 결심하였다.최대한 빨리 게임을 끝내고 문제를 출제해야 하기 때문에 유섭이는 최대한 빨리 넥서스가 있는 곳으로 달려가려고 한다. 유섭이의 챔피언은 총 N개의 분기점에 위치할 수 있다. 0번째 분기점은 현재 유섭이의 챔피언이 있는 곳을, N-1 번째 분기점은 상대편 넥서스를 의미하며 나머지 1, 2, ..., N-2번째 분기점은 중간 거점들이다. 그러나 유섭이의 챔피언이 모든 분기점을 지나칠..
13549 - 숨바꼭질 3[G5] 문제 https://www.acmicpc.net/problem/13549 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.  풀이 풀이의 핵심은 PQ 사용을 통한 '가장 짧은 시간'을 항시 탐색하는 것.3가지의 조건 분기를 PQ에 던지기만 한다면 heap을 통해 최단 거리를 항상 ..
메이즈 러너[G3] https://www.codetree.ai/training-field/frequent-problems/problems/maze-runner/description?page=1&pageSize=20&statuses=Passed 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 풀이 핵심은 먼저 배열 돌리기 시 '상대좌표'를 사용해서 돌리는 것.두번째로 브루트 포스를 사용하여 가장 작은 사각형 위치를 찾는 것 두가지다.모험가 이동 패턴은 전반적으로 무난했는데, 이게 왜 G3인지 이해하기 쉽지 않다..import java.io.*;import java.util.*..
[DB]psql 하드웨어 성능 튜닝 (24.07.10) PostgreSQL을 처음 설치하면 기본 설정으로 작동한다. 하지만 하드웨어 사양에 맞춰 설정을 조정하면 성능을 크게 향상시킬 수 있다.메모리 설정shared_buffers를 늘리면 데이터 캐시가 증가하여 쿼리 성능이 향상된다.work_mem을 조정하면 복잡한 쿼리나 정렬 작업이 빨라진다.CPU 활용max_parallel_workers와 max_worker_processes를 통해 여러 CPU 코어를 효율적으로 사용할 수 있다. 이는 대용량 데이터 처리를 빠르게 해준다.디스크 I/O 최적화effective_io_concurrency를 통해 디스크 작업의 동시성을 최적화하면, 디스크 읽기/쓰기 속도가 향상된다.wal_buffers를 적절히 설정하면 쓰기 작업 성능이 개선된다.이러한 설정 조정을 통해 Pos..
Transaction : Out of shared memory, DeadLock (24.07.01) Out of shared memory 자체적으로 개발 중인 Collector 로직에서, 시간에 따른 노후화된 시간 파티션을 제거하는 로직이 있다.이것은 Scheduler와 엮여 매 설정된 시간마다 Drop 및 새로운 시간 파티션 테이블을 Create 하는데 문제가 발생했다.   에러를 보아하니,1. 조건에 맞는 오래된 파티션 테이블이 다수이며 (로깅을 확인해 본 결과 약 200개 이상의 테이블로 사료된다. 이는 파티션 생성 로직만 냅두고 오랜만에 Drop을 하기 때문.. )2. 이것을 삭제 실패하는 경고문을 확인할 수 있었다. 원인 : 메모리 부족늘 그렇듯 트랜잭션을 통해 민감한 작업 실행 시 이를 묶어서 격리해야 하는데, 이것의 용량이 부족하다는 의미이다.아마 새로운 테이블을 생성하는 작업은 상대적으로..
포탑 부수기[G1] https://www.codetree.ai/training-field/frequent-problems/problems/destroy-the-turret/description?page=1&pageSize=20 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 2트만에 성공주요 쟁점은 배열 대신 Tower 객체를 사용하는 것.그리고 Compable과 핸디캡 쪽 순서 처리.  import java.util.*;import java.io.*;class Main { static int N, M, K; static Tower[][] map; static List to..