동전링크: https://www.acmicpc.net/problem/9084문제 해결 과정1. 문제를 읽고 이해하기테스트 케이스의 개수 T (1 동전 종류의 수: N (1 만들어야 하는 금액: M (1 N가지의 동전을 가지고 M을 만들어야 한다. 만약 10원과 20원을 가지고 50원을 만드는 경우의 수는 3가지가 있다.1. 10 10 10 10 102. 10 10 10 203. 10 20 202. 재정의와 추상화N 개의 수를 사용하여 어떤 수 M를 만들 수 있는 경우의 수를 구해야 한다.3. 계획 세우기각 상황에 대한 모든 경우의 수를 나열하다보면 감을 잡을 수 있다. 10과 20으로 50을 만드는 경우의 수10원과 20원으로 50원을 만드는 경우의 수를 다시 확인해보자1. 10 10 10 10 102...
전체 글
미지의 코딩세계로LCS최장 공통 부분 수열 알고리즘은, 여러 문자열의 부분 수열 중 가장 긴 수열을 찾는 알고리즘이다.여기서는 두 개의 수열에 대한 해만 다룰 것이다.diff 프로그램의 근간이되는 알고리즘이다.시간 복잡도주어진 수열의 개수가 일정할 때 DP(Dynamic Programming), 동적 계획법으로 풀이할 수 있다.길이가 N과 M인 두 수열이 주어졌을 때 일반적으로 O(N * M)의 시간복잡도를 가진다.LCS 문제의 풀이LCS는 *optimal substructure와 **overlapping subproblems 성격을 지니고 있다. 두 속성을 공유하는 경우 하위 부분 문제들에 대한 최적해를 저장한 메모이제이션 기법을 통한 DP풀이를 사용할 수 있다.*optimal substructure: 하위 문제의 최..
Eureka Client를 spring boot로 추가하면서 발생한 에러 [JAVA/Spring/MSA] 1. 프로젝트 MSA 적용 여정: 유레카 클라이언트※ Udemy 강의 中 【Master Microservices with SpringBoot,Docker,Kubernetes】의 내용을 기반으로 실제 프로젝트에 적용하는 과정을 기록하는 포스팅입니다.유레카 클라이언트유레카 서버가 관리할 클라이언트bitbit-merry-go-round.tistory.com idea가 제공하는 spring boot v3.3.0 으로 Eureka Discovery Client를 추가하고 build 하자 아래와 같은 에러를 만났다. error를 그대로 검색한 결과, JVM의 버전이 17이상이 아니기 때문이다. 혹은 spring..
※ Udemy 강의 中 【Master Microservices with SpringBoot,Docker,Kubernetes】의 내용을 기반으로 실제 프로젝트에 적용하는 과정을 기록하는 포스팅입니다.유레카 클라이언트유레카 서버가 관리할 클라이언트를 등록하는 과정을 소개합니다.특정 애플리케이션에 유레카 클라이언트를 적용하기 전에 해당 애플리케이션에 Spring Boot Actuator*를 추가해야합니다. * Spring Boot Actuator는 endpoint를 통해 애플리케이션 내부의 정보를 동적으로 생성해준다. 또한 설정을 실행 중에 동적으로 변경할 수 있는 기능을 제공해준다. 이 포스팅에서는 health check 측면에서의 역할만 다루고 있습니다. Spring Boot Actuator 적용의존성 ..
카드 구매하기링크: https://www.acmicpc.net/problem/11052 문제 해결 과정1. 문제를 읽고 이해하기N개의 카드 팩이 있고 입력값의 순서에 따라 i 장의 카드가 들어있다.N장의 카드를 얻기 위해 지불해야 하는 카드 값의 최댓값을 구하라. N이 4이고 1, 5, 6, 7이 각 카드 팩의 가격으로 주어졌다면 1장 팩 가격: 12장 팩 가격: 53장 팩 가격: 64장 팩 가격: 7 카드의 수가 4장이 되는 모든 경우의 수의 가격을 살펴보자. 편의상 N장의 카드가 담긴 팩을 팩N, 값단위를 $로 표기하겠다.팩1 * 4개 = 4$팩1 * 2개 + 팩2 = $7팩2 * 2 = $10팩3 + 팩1 = $7팩4 = $7 ∴ 4장을 구매하기 위한 최댓값은 2장 팩을 2개 구매하는 것이다.2. ..
극장 좌석링크: https://www.acmicpc.net/problem/2302 2024.10.23 - [Algorithms/알고리즘 문제 해결 전략] - [종만북] 알고리즘 문제를 해결하는 과정 [종만북] 알고리즘 문제를 해결하는 과정※ 구종만 저자님의 『알고리즘 문제 해결 전략』에서 발췌한 내용입니다.기본적인 문제 해결 과정1. 문제를 읽고 이해한다.2. 문제를 익숙한 용어로 재정의한다.3. 어떻게 해결할지 계획bitbit-merry-go-round.tistory.com회고의 방식을 위 포스팅의 내용을 반영하여 진행할 생각입니다😊문제 해결 과정1. 문제를 읽고 이해하기1. 1번 부터 N번까지 번호를 매긴 좌석이 있다.2. k번의 번호표를 가지고 있는 사람들은 k-1, k, k+1 세 좌석 중 한 ..
※ 구종만 저자님의 『알고리즘 문제 해결 전략』에서 발췌한 내용입니다.기본적인 문제 해결 과정1. 문제를 읽고 이해한다.2. 문제를 익숙한 용어로 재정의한다.3. 어떻게 해결할지 계획을 세운다.4. 계획을 검증한다.5. 프로그램으로 구현한다.6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다. 1. 문제를 읽고 이해하기문제 설명을 공격적으로 읽으며 문제가 원하는 바를 완전히 이해하는 것이 중요하다.사소한 제약 조건을 잘못 이해하면 풀 수 없는 문제들이 흔하다. 2. 재정의와 추상화자신이 다루기 쉬운 개념을 이용하여 문제를 자신의 언어로 풀어쓰는 것.복잡한 문제일 수록 그 중요성이 커진다.문제의 추상화어느정도의 본질만 남겨두고 축약하여 다루기 쉽게 표현해야 한다.어떤 부분을 추상화할 지를 선택하..
택배링크: https://www.acmicpc.net/problem/8980 문제문제 접근각 마을에서 적재할 수 있는 박스의 최댓값을 구해야한다고 생각했다. 따라서 마을의 번호를 오름차순으로 정렬해서 풀이를 시도했다.문제는 현재의 최댓값이 전체의 최적해일 수 없다는 점이다.200의 용량을 가진 택배가 마을 1에서 7마을로 가는 200의 상자를 실어버리면 2마을과 4마을의 400을 놓치게 된다.현재 위치에서의 최적해를 판단하기 위해서는 잠재적으로 얻을 수 있는 값을 알고 있어야 한다.이 문제를 해결할 수 있는 방법을 생각해보자.최대 적재량이 200이기 때문에 2마을과 4마을에서 180을 싣더라도 20의 여유 공간이 생긴다.따라서 1마을에서 1마을에서 7마을까지의 여유 공간, 20을 구할 수 있어야 한다.이..