본문 바로가기

분류 전체보기

(285)
idexOf indexOf는 문자열 내에서 특정 문자 또는 문자열이 처음으로 나타나는 인덱스(위치)를 반환하는 메서드입니다. 이 메서드는 문자열에서 특정 부분 문자열을 찾거나, 특정 문자가 있는 위치를 찾을 때 유용하게 사용됩니다. indexOf 메서드는 다음과 같이 두 가지 형태로 사용될 수 있습니다: indexOf(int ch): 문자열에서 주어진 문자가 처음으로 등장하는 인덱스를 반환합니다. 만약 해당 문자가 문자열에 없으면 -1을 반환합니다. indexOf(String str): 문자열에서 주어진 부분 문자열이 처음으로 등장하는 인덱스를 반환합니다. 만약 해당 부분 문자열이 문자열에 없으면 -1을 반환합니다. String str = "hello world"; int index1 = str.indexOf('o'..
Math.sqrt(i) Math.sqrt(i)는 자바에서 제곱근을 계산하는 메서드입니다. 주어진 숫자 i의 제곱근을 반환합니다. 예를 들어, Math.sqrt(9)를 호출하면 9의 제곱근인 3이 반환됩니다. 제곱근을 사용하는 이유는 약수를 찾을 때 반복문의 범위를 최적화하기 위해서입니다. 어떤 숫자 n의 약수 중에서 가장 큰 약수는 n의 제곱근입니다. 따라서 1부터 n의 제곱근까지의 범위만 확인하여 약수를 찾으면 충분합니다. 그 이상의 수는 약수가 될 수 없기 때문에 확인할 필요가 없습니다.
재귀함수 class Solution { // 주어진 구슬 개수 balls에서 share 개의 구슬을 선택하는 경우의 수를 구하는 함수 public int solution(int balls, int share) { // combination 메서드 호출하여 조합의 수를 반환 return combination(balls, share); } // 조합(combination)의 수를 계산하는 메서드 public static int combination(int balls, int share) { // base case: share가 0이거나 balls와 share가 같으면 경우의 수는 1 if (balls == share || share == 0) return 1; // 재귀적으로 combination 메서드를 호출하여 ..
HashMap, String.split() HashMap은 Java에서 많이 사용되는 데이터 구조 중 하나로, 키-값(key-value) 쌍을 저장하는데 사용됩니다. 여기서 각 키는 고유(unique)해야 하며, 하나의 키는 하나의 값과 연관되어 있습니다. Map 인터페이스를 구현한 HashMap 클래스는 해시 테이블(hash table)을 기반으로 합니다. 해시 테이블은 배열과 같은 구조를 가지고 있으며, 각 키-값 쌍은 해시 함수를 사용하여 배열의 인덱스로 변환되어 저장됩니다. 이렇게 HashMap은 다음과 같은 특징을 갖습니다: 고속 검색: HashMap은 해시 함수를 사용하여 키를 해시 코드로 변환하고, 이를 기반으로 키와 관련된 값에 접근합니다. 이는 매우 빠른 검색 속도를 제공합니다. 고유한 키: HashMap은 중복된 키를 허용하지 ..
StringBuilder StringBuilder sb = new StringBuilder(); // 문자열 추가 sb.append("Hello"); // 문자열 연결 sb.append(" World"); // 문자열 삽입 sb.insert(5, ","); // "Hello, World" // 문자열 삭제 sb.deleteCharAt(5); // "Hello World" // 문자열 수정 sb.setCharAt(6, 'w'); // "Hello world" // 문자열 역순으로 변환 sb.reverse(); // "dlrow olleH" // 문자열 출력 System.out.println(sb.toString()); // "dlrow olleH" StringBuilder sb = new StringBuilder(); // 문자열..
오버라이딩과 오버로딩 오버라이딩(Overriding)과 오버로딩(Overloading)은 객체 지향 프로그래밍에서 메서드 다형성을 구현하는 두 가지 다른 개념입니다. 오버라이딩(Overriding): 오버라이딩은 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 의미합니다. 오버라이딩은 메서드 이름, 매개변수 리스트 및 반환 타입이 부모 클래스의 메서드와 동일해야 합니다. 오버라이딩된 메서드는 부모 클래스의 메서드보다 접근 제어자를 더 좁은 범위로 변경할 수 있습니다(예: 부모 클래스의 메서드가 public이면 자식 클래스에서는 protected 또는 private으로 변경 가능). 오버라이딩은 런타임 시에 호출되는 메서드가 결정되므로 동적 바인딩(dynamic binding)이라고도 합니다. 주로 다형성..
(int) Arrays.stream(array).average().orElse(0); (int) Arrays.stream(array).average().orElse(0); Arrays.stream(array): 이 부분은 'array'를 IntStream으로 변환합니다. .average(): 이 부분은 IntStream의 요소들의 평균을 계산합니다. .orElse(0): 이 부분은 스트림이 비어있을 경우에 기본값으로 0을 제공합니다 (예: 배열이 비어있는 경우). (int): 이 부분은 결과를 정수로 캐스팅합니다.
jwt 토큰 인증 인가 JwtUtil @Slf4j @Component public class JwtUtil { // JWT 토큰에 사용될 헤더 이름 정의 public static final String ACCESS_TOKEN_HEADER = "AccessToken"; public static final String REFRESH_TOKEN_HEADER = "RefreshToken"; public static final String AUTHORIZATION_KEY = "auth"; public static final String BEARER_PREFIX = "Bearer "; // 액세스 토큰 및 리프레시 토큰의 유효 기간 설정 public final long ACCESS_TOKEN_TIME = 60 * 1000 * 60; pu..