전체 글(133)
-
[JAVA] 약수 구하기
알고리즘 문제에서 약수를 효율적으로 구하는 방법을 찾아보다 정리하기 위해 글 작성 약수 약수는 특정 숫자를 나누어 나머지가 없도록 만드는 것을 말한다 5를 1, 5로 나누면 나누어 떨어진다 10을 1, 2, 5, 10로 나누면 나누어 떨어지며 해당 값들을 약수라고 한다 JAVA에서 약수를 구하는 방법 일반적인 알고리즘int num = 10;for (int i=1; i해당 방식의 경우 반복문을 통해서 해당 값을 나누어서 일일이 값을 다 찾아서 출력한다. 해당 방법의 경우 num 값이 커질때 마다 계산해야되는 범위가 커지며 런타임 시간이 길어지게 될 것이다. Math의 sqrt() 메소드sqrt 메소드는 값의 제곱근을 구한다. 해당 범위 만큼만 탐색하게 되므로 위에서 설명한 일반적인 알고리즘의 반복문에 비..
2023.10.23 -
[Spring - JAVA] 의존성 주입 관계
오늘 문득 강의를 듣다 내가 이걸 알고 듣는게 맞는가에 대해 고민하기 생각했다. 표면상으로 나름 난 이 개념에 대해 대략 알고 있어라는 생각은 하고 있었지만 막상 설명을 해볼려고 하니 난 이걸 모르고 있던게 맞는거 같다 헣.. 의존성을 주입을 하는 방법은 3가지 있다 필드 주입 생성자 주입 👍 수정자 수입 필드 주입 필드 주입은 객체의 생성 시점과 의존성 주입 시점이 분리가 된다. 필드의 결합도 가 높으며 @Autowried 어노테이션을 통해 직접 지정하고 자동으로 Spring이 자동으로 의존성을 주입한다. 때문에 테스트 코드를 작성해야되는 상황에서는 유연성이 부족한 문제가 있다 객체가 생성된 이후 의존성을 주입하는 방식으로 진행되고 때문에 객체가 생성되는 시점에는 의존성이 초기화 되지 않는다. 때문에 ..
2023.10.21 -
[프로그래머스 - JAVA] 가장 가까운 같은 글자
문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. a는 자신보다 두 칸, 네 칸 앞에 a가 있..
2023.10.20 -
[OOP] SOLID 5대 원칙 SRP 단일 책임 원칙
SOLID 5대 원칙 단일 책임 원칙 (Single Responsibility principle) 개방 폐쇄 원칙 (Open Close Principle) 리스코프 치환 원칙 (Liscov Substitution Principle) 인터페이스 분리 원칙 (Interface Sergregation Principle) 의존성 역전 원칙 (Dependency Inversion Principle) 단일 책임 원칙 (SRP) 단일 책임 원칙은 객체는 오로지 하나의 기능과 수행 책임을 가져야 한다. 해당 원칙을 지키지 않고 코드를 작성하면 하나의 객체가 여러가지의 기능을 수행할 경우 객체 변경에 대한 엄청난 영향력을 끼칠 것이다. 때문에 이러한 점을 유의한 상태로 코드를 작성하도록 하자 간단한 예시 ❌ SRP 위반..
2023.10.20 -
[프로그래머스 - JAVA] 크기가 작은 부분 문자열
문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 제한사항 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다. 정답 class Solution { public int solution(String t, Stri..
2023.10.18 -
[프로그래머스 - JAVA] 개인정보 수집 유효기간
문제 설명 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날짜가 2022.05.19일 ..
2023.10.18