분류 전체보기
-
[Programmers] 연속된 부분 수열의 합 (JAVA)Algorithm 2023. 9. 1. 22:13
문제 설명 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다. 수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution 함수를 완성해주세요. 이때 수열의 인덱스는 0부터 시작합니다. 제한사항 5 ≤ sequence의 길이 ≤ 1..
-
[Programmers] 요격 시스템 (JAVA)Algorithm 2023. 8. 31. 20:39
문제 설명 A 나라가 B 나라를 침공하였습니다. B 나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A 나라는 B 나라의 아이기스 군사 기지에 융단폭격을 가했습니다. A 나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을 자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소로 사용해서 모든 폭격 미사일을 요격하려 합니다. A 나라와 B 나라가 싸우고 있는 이 세계는 2 차원 공간으로 이루어져 있습니다. A 나라가 발사한 폭격 미사일은 x 축에 평행한 직선 형태의 모양이며 개구간을 나타내는 정수 쌍 (s, e) 형태로 표현됩니다. B 나라는 특정 x 좌표에서 y 축에 수평이 되도록 미사일을 발사하..
-
[Programmers] 추억 점수 (JAVA)Algorithm 2023. 8. 30. 23:18
문제 설명 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의 ..
-
[Programmers] 달리기경주 (JAVA)Algorithm 2023. 8. 30. 22:49
문제 설명 얀에서는 매년 달리기 경주가 열립니다. 해설진들은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부릅니다. 예를 들어 1등부터 3등까지 "mumu", "soe", "poe" 선수들이 순서대로 달리고 있을 때, 해설진이 "soe"선수를 불렀다면 2등인 "soe" 선수가 1등인 "mumu" 선수를 추월했다는 것입니다. 즉 "soe" 선수가 1등, "mumu" 선수가 2등으로 바뀝니다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 문자열 배열 players와 해설진이 부른 이름을 담은 문자열 배열 callings가 매개변수로 주어질 때, 경주가 끝났을 때 선수들의 이름을 1등부터 등수 순서대로 배열에 담아 return 하는 solution 함수를 완성해주세요. 제한사항 5 ≤..
-
[LeetCode] 11. Container With Most Water (JAVA)Algorithm 2023. 8. 26. 17:51
You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]). Find two lines that together with the x-axis form a container, such that the container contains the most water. Return the maximum amount of water a container can store. Notice that you may not slant the container. Example 1: Input: height..
-
Service Mesh란?DEV 2023. 7. 16. 15:35
Service Mesh란? MSA를 적용한 시스템의 내부 통신이 Mesh 네트워크 형태를 띠는 것에 빗대어 Service Mesh로 불려집니다. 추상화를 통해 복잡한 내부 네트워크를 제어, 추적, 네트워크 관련 로직을 추가함으로써 서비스 메시는 애플리케이션의 트래픽을 관리, 추적, 보안성을 강화하는 플랫폼 레이어에 구성되는 네트워크 제어 방법입니다. 서비스 메시는 데이터 플레인, 컨트롤 플레인 두 개의 컴포넌트로 구성이 되어있습니다. 데이터 플레인은 애플리케이션 사이에 있는 프록시 네트워크를 구성하고 있습니다. 데이터 플레인의 프록시는 보통 엔보이를 사용하고 모든 서비스에 대한 인바운드/아웃바운드 트래픽을 관장합니다. 컨트롤 플레인은 프록시에게 수행할 작업을 알려주고 메시를 작동하는 사람을 위한 인터페..
-
[Spring] AOP (Aspect Oriented Programming)JAVA/SPRING 2023. 6. 11. 15:43
1. AOP 란? 자바에서는 다중 상속이 불가능하여 상속을 통한 공통 메소드를 구성에 한계가 있지만 AOP를 통해 핵심 관심 사항(Core Concern)과 공통 관심 사항(Cross-Cutting Concern)을 분리하고 모듈화 할 수 있습니다. (ex. 주문 API: 핵심 관심사(주문 로직), 공통 관심사(로깅)) AOP의 장점 공통 관심사를 핵심 관심사로부터 분리하여 핵심 로직의 변경없이 공통 관심사를 변경 가능 공통 로직을 적용할 대상을 선택 가능 주요 개념 Aspect: 공통적인 관심사를 모듈화 Target: Aspect가 적용될 대상(메소드, 클래스...) Join point: Aspect가 적용될 수 있는 시점 Advice: Aspect의 기능 Point cut: Advice를 적용할 메소..
-
[Spring] 의존성 주입 (Dependency Injection)JAVA/SPRING 2023. 5. 29. 15:44
1. 의존성 주입이란? 객체를 직접 생성하는 것이 아니라 외부에서 생성된 객체를 주입하는 방법으로 런타임에 의존성을 동적으로 주입하여 결합도를 낮출 수 있습니다. 스프링에서 의존성을 주입할 수 있는 방법으로는 생성자 주입, 필드 주입, 수정자 주입 등의 방법이 존재하고 스프링에서는 생성자 주입을 권장하고 있습니다. 의존성 주입을 통해 클래스들의 결합도를 낮출 수 있고 객체의 유연성을 높이고 테스트 작성이 용이해진다는 장점이 있습니다. public class Person { private Student student; public Person() { this.student = new Student(); } } 위 코드 예시의 문제점은 Person 클래스와 Student클래스가 강한 결합도를 가지고 있습니..