본문 바로가기
반응형

Develop40

원형 큐 1. 원형 큐란?원형 큐(Circular Queue)는 일반적인 큐(Queue)의 한계를 극복한 자료구조로,배열을 원형 형태로 연결하여 큐의 공간을 효율적으로 활용하는 방식이다.✅ 일반적인 큐의 문제점일반적인 선형 큐(Linear Queue)는 enqueue(삽입)과 dequeue(삭제)를 반복하면 배열의 앞쪽 공간이 비어도 재사용할 수 없음즉, 배열의 크기를 초과하면 사용되지 않는 공간이 발생하여 비효율적임✅ 원형 큐의 특징선형 큐의 메모리 낭비 문제를 해결배열의 끝과 시작이 연결된 형태배열을 넘어가면 다시 처음으로 돌아갈 수 있음 (모듈러 연산 활용)2. 원형 큐 vs 선형 큐 비교비교 항목선형 큐 (Linear Queue)원형 큐 (Circular Queue)메모리 활용비효율적 (삭제 후 공간 재사.. 2025. 2. 14.
Tree 전위, 중위, 후위 순회 입력 값1234567 소스코드package algorithm.boj;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) throws IOException { System.setIn(new FileInputStream("/Users/kdelay/study/programmers/src/main/j.. 2024. 11. 7.
알고리즘 정리 및 예제 ≣ 목차동적 계획법 (Dynamic Programming, DP)예제: 피보나치 수열 (Fibonacci Sequence)  • 문제 설명: 피보나치 수열의 n번째 숫자를 구하는 문제입니다. • 접근 방법: DP를 사용해 재귀적으로 구하는 대신, 중복 계산을 피하고, 계산된 값을 배열에 저장해 최적화를 할 수 있습니다.public class FibonacciDP { public static void main(String[] args) { int n = 10; System.out.println(fibonacci(n)); // Output: 55 } public static int fibonacci(int n) { if (n 추가 예제: 최소 동전 개수.. 2024. 10. 22.
기본 자료구조 및 사용법 정리 ≣ 목차 Array (배열)Java에서 배열은 고정된 크기를 가지며, 인덱스를 통해 빠르게 접근할 수 있는 자료구조입니다.public class ArrayExample { public static void main(String[] args) { // 배열 선언과 초기화 int[] arr = new int[5]; // 크기가 5인 정수형 배열 int[] initializedArr = {1, 2, 3, 4, 5}; // 초기화된 배열 // 배열 값 변경 arr[0] = 10; // 배열 순회 for (int i = 0; i  ArrayList (동적 배열)ArrayList는 동적 크기.. 2024. 10. 22.
예상 알고리즘 문제 Two Sum 문제 개요:  • 배열에서 두 숫자를 찾아서 더했을 때 목표 값이 되는 쌍을 찾는 문제. 해결 방법:  • 배열을 한 번 순회하면서 현재 숫자의 보완 값(목표값 - 현재값)이 해시맵에 있는지 확인합니다. • 해시맵에 없다면, 현재 값을 해시맵에 저장합니다. 이렇게 하면 O(n) 시간 복잡도로 해결 가능합니다.public int[] twoSum(int[] nums, int target) { Map map = new HashMap(); for (int i = 0; i  Merge Intervals 문제 개요:  • 주어진 여러 간격(interval)을 병합하는 문제. 해결 방법:  • 먼저 각 간격을 시작점을 기준으로 정렬합니다. • 각 간격을 순차적으로 순회하면서 겹치는 간격이 있.. 2024. 10. 22.
Grafana K6 성능 테스트를 위한 오픈 소스 도구로, 쉽게 스크립트를 작성하고 실행할 수 있다. MacOS k6 설치brew install k6 script.js 를 작성한다.import http from 'k6/http';import { sleep } from 'k6'; export const options = { vus: 100, duration: '30s' };export default function() { http.get('http://localhost:8080/concert'); // const url = 'http://localhost:8080/waiting-queue/join'; // const data = { // userId: "test_user", // seriesId: "test_series".. 2024. 8. 2.
[Redis] Redisson vs Lettuce vs Spring data redis 요약• Redisson: 다양한 고급 기능을 제공하며 분산 환경에서 유용하지만, 설정이 복잡할 수 있음.• Lettuce: 고성능 비동기 작업과 리액티브 프로그래밍에 적합하며, 클러스터 모드 지원. 그러나 사용법이 비교적 복잡.• RedisTemplate: Spring 프로젝트와의 통합에 적합하며, 사용이 간편하지만, 고성능 비동기 작업 처리에는 다소 제한적. Redisson특징 • Redis를 Java 객체처럼 다룰 수 있게 해주는 라이브러리. • 다양한 Redis 데이터 구조(맵, 세트, 리스트 등)를 Java 객체로 직접 사용할 수 있게 함. • 비동기, 동기, 반동기 API 제공. • Redis 기반의 분산 락, 세마포어, 큐 등 다양한 고급 기능 제공. 장점 • 분산 환경에서 유용한 다양한 기능.. 2024. 7. 31.
Redis Redis메모리형 DB 서버key 획득 로직(공통 구성) - wrapperconfigDocker 설정docker pull redisdocker imagessudo docker run -p 6379:6379 redisdocker psdocker exec -it bd716a02092f /bin/bashRedis 접속redis-cliKey-Valueset first "fighting"set random22222 "test2"lock 점유 및 해제setnx reservation "lock"del reservationTTL 설정expire reservation 10  Medis 로 GUI 확인 가능 2024. 7. 23.
[Docker] Database docker-compose 구축(mysql, redis) ≣ 목차Docker 설치https://www.docker.com/ Docker: Accelerated Container Application DevelopmentDocker is a platform designed to help developers build, share, and run container applications. We handle the tedious setup, so you can focus on the code.www.docker.com 도커 컴포즈는 개발 환경 세팅이라고 생각하고, 프로젝트 파일과 별개로 docker-compose.yml 파일을 생성해도 된다.docker-compose.yml 파일을 열고 작성한다.vi docker-compose.yml docker-compose.ym.. 2024. 7. 22.
728x90
반응형