반응형 분류 전체보기309 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. 4회 테코테코 ≣ 목차요약Queue내부 동작 방식 (배열 기반) - 선형 QueueInteger.MAX_VALUE 에서 -8 을 빼서 default 사용한다. (메모리 안정성 때문인가??) 선형 Queue 문제점: 메모리 낭비 -> 원형 큐 사용초기 front, rear 값은 모두 -1이다. 1. isFull 을 통해 data[max_size] 와 크기를 비교한다. 꽉찬 경우, false 를 반환한다.2. offer 를 해서 data 에 값을 넣는다. + rear 값을 1 증가 시킨다.3. poll 할 경우 front 값을 1 증가 시킨다. (데이터가 삭제되지 않는다.)4. offer == poll 인 경우 isEmpty 가 true 이다.Queue문제10845번: 큐https://www.acmicpc.net/pro.. 2024. 10. 6. DDD 스터디 + a ≣ 목차DDD란?도메인을 중심으로(도메인 로직에 초점을 두고) 설계 및 개발을 진행한다.- 도메인 - 비즈니스 도메인 (콘서트 예약하기 시스템) - 해결하고자 하는 문제 도메인(시스템 내부의 콘서트, 예약, ...)client, server 커뮤니케이션을 위해 유비쿼터스 language 를 정의한다. - 유비쿼터스 language: 상품, 주문, ... DDD의 핵심- 전략적 설계: 추상화- 전술적 설계: 아키텍처, 비즈니스 구현SQL-DD와 DDD의 차이SQL-DD: 객체가 가져야할 데이터를 중심으로 설계하는 방식 - 코드의 결합도가 높은 단점을 가진다. - DDD 가 러닝 커브가 좀 더 높음- SQL-DD 는 결합도가 높은 편(한 객체에 모든 게 들어있기 때문) DDD 구성요소Bounded C.. 2024. 10. 1. 3회 테코테코 ≣ 목차요약- stack 을 사용할 수 있다.Stack첫 번째 문제https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법- 바구니를 stack 으로 저장하고, 바구니에 동일한 인형이 연속해서 들어올 경우 삭제한다.고민 포인트- 값이 1 이상일 때만 인형을 뽑을 수 있다.- board 의 최대 범위 30, moves 의 최대 범위 1,000이므로, O(N^2) 문제 풀이가 가능하다.최종 코드 및 회고- 직관적으로 인형을 바구니에 담는 건 stack.. 2024. 9. 29. 2주차 정리 ≣ 목차학습 목표API 개발, RDBMS 이용https://github.com/kdelay/Special-Lecture-API GitHub - kdelay/Special-Lecture-API: ✏️ 특강 신청 서비스 API 구현✏️ 특강 신청 서비스 API 구현. Contribute to kdelay/Special-Lecture-API development by creating an account on GitHub.github.comAPI Specs특강 신청 API- POST /lectures/apply- 특정 userId 로 선착순으로 제공되는 특강을 신청하는 API 를 작성한다.- 동일한 신청자는 한 번의 수강 신청만 성공할 수 있다.- 각 강의는 선착순 30명만 신청할 수 있다.- 이미 신청자가 3.. 2024. 9. 28. 1주차 정리 ≣ 목차학습 목표TDD, Testable Code, Test Codehttps://github.com/kdelay/Point-API-TDD GitHub - kdelay/Point-API-TDD: 💠 포인트 충전, 조회 등 관련 API - TDD 작성하기💠 포인트 충전, 조회 등 관련 API - TDD 작성하기. Contribute to kdelay/Point-API-TDD development by creating an account on GitHub.github.comTDD(Test Driven Development)핵심 테스트 코드를 먼저 작성하고, 이를 바탕으로 기능 개발을 진행한다.불필요한 개발 생산성 저하를 방지하기 위해 테스트 스코프를 크게 잡지 않는다.테스트 커버리지 100% 보다, 유의.. 2024. 9. 27. 이전 1 2 3 4 ··· 35 다음 728x90 반응형