📑 1. 문제설명💡 2. 접근방식완전탐색은 안되는 이유문제에서 number≤1,000,000으로 최대 백만자리 숫자가 될 수 있다. number 값이 너무 커서 완전 탐색은 현실적으로 불가능하다. k는 1 이상 len(number) - 1 이하예를 들어, 숫자가 1,000,000자리라면 최대 999,999개의 숫자를 제거해야 한다. 왜 그리디 알고리즘을 써야 하는가?숫자를 한 번만 순회하면서 적절한 숫자를 선택하거나 제거한다. 숫자가 백만 자리여도 1,000,000번의 비교만 하면 되기 때문에 효율이 좋다.문제의 핵심 = '앞에서부터 뒤로 큰 숫자 유지'앞자리부터 순서대로 숫자를 선택하며 큰 숫자를 유지하는 방식으로 풀어야 한다.나는 이중포문으로 풀었는데 다른 분들이 풀이한 걸 보니 스택을 사용해 더..
My Tech Blog (Java)
📑 1. 대소문자 바꿔서 출력하기import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); System.out.println(swapCase(a)); } public static String swapCase(String str) { StringBuilder result = new StringBuilder(); for(char c:str.toCharArray()) { if(Character.isUpperCase(c) ) { resu..
자바 JDBC로 데이터베이스에 연결할 때 사용한 자원은 `connection.close()` 처럼 `close()` 메서드를 사용해서 닫아 주어야 한다. 하지만 try with resources 구문을 사용하면 별도로 자원해제를 안 해 줘도 된다. try 구문에서 자원을 선언하면 자동으로 해제되기 때문이다.이처럼 try-with-resources는 리소스 관리가 중요한 프로그램에서 오류를 방지하고 코드 품질을 높이는 매우 유용한 기능이다. 파일 입출력, 데이터베이스 연결, 네트워크 소켓 등 다양한 상황에서 활용 가능하다. 기본사용법코드에서 볼 수 있듯이 try-with-resources의 기본 형식은 try문 안에서 자원을 선언하는 것이다.try (리소스_타입 리소스_이름 = new 리소스_타입()) {..
📑 1. 문제설명💡 2. 접근방식문제에서 주어진 매개변수- 수열을 나타내는 정수 배열 `sequence`- 부분 수열의 합을 나타내는 정수 `k` 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열로 return하는 solution 함수를 작성하는 문제 투포인터, 슬라이딩 윈도우 알고리즘으로 푼다.- start: 윈도우의 시작 인덱스- end: 윈도우의 끝 인덱스 (or 다음 탐색할 위치) `투포인터`하나의 포인터는 배열의 시작을, 다른 하나는 배열의 끝을 가리키며 시작특정 조건을 만족하는 구간을 찾는것이다. `슬라이딩 윈도우 알고리즘`부분 배열, 부분 문자열 문제에서 자주 사용되는 알고리즘으로 조건을 만족하는 구간을 찾거나, 고정된 크기 구간의 합계, 최대값, 최소값 등을 구할 때 유..
1. 이클립스에 깃허브 연동하기 상단메뉴 [Window] - [Show View] - [Other] [Git] - [Git Repositories] - 마우스 우클릭 [Clone a Git Repository] URI: 내 깃허브 레파지토리 URI (HTTP)User & password : 내 깃허브 아이디와 깃토큰 입력하고 [Next] - [Finish] 깃허브와 연동하고자 하는 프로젝트 마우스 우클릭 [Team] - [Share Project..] 클릭 Repository: 아까 Git Repositories에서 만들어 놨던 경로를 클릭 그리고 [Finish] 커밋하려면 프로젝트 마우스 우클릭 [Team] - [Commit] - [Unstaged Chages] 에 있는 파일들을 상단 [++] 을 ..
📑 1. 문제설명💡 2. 접근방식문제에서 주어진 것n : 전체 학생의 수lost : 체육복 도난당한 학생들의 번호들 (배열) reserve : 여벌 가져온 학생 번호들 (배열)체육복은 앞,뒤 번호 학생 에만 빌려줄 수 있음.도난 당한 학생들은 여분이 없어서 체육복 빌려줄 수 없음.1. `lost`와 `reserve` 배열 정렬 2. 체육수업에 참여할 수 있는 학생의 수 = 체육복이 있거나 빌릴 수 있는 학생들의 수 `체육복을 도난 당하지 않은 학생의 수` + `도난당했지만 예비로 들고 온 학생의 수` + `도난당했지만 체육복을 빌릴 수 있는 학생의 수`이 모든 학생들의 수를 누적해서 answer 변수에 담아 준다. ✅ 체육복을 도난 당하지 않은 학생의 수= 전체 학생의 수 - 체육복을 도난당한 학..
📑 1. 문제설명💡 2. 접근방식만들어줄 메서드는 4가지 - 오프닝 끝 위치로 이동하는 `SkipOp()` 메서드- 명령이 "next" 이면 10초 뒤로 이동하는 `moveToNext()`메서드- 명령이 "prev" 이면 10초 앞으로 이동하는 `moveToPrev()` 메서드- String 타입으로 입력 받은 시간을 LocalTime으로 형변환 하는 `getTime()`메서드 "mm:ss" 형식으로 받아온 시간을 ":" 기준으로 분, 초 단위로 나누어 배열에 저장한다.LocalTime이 가진 메서드로 시간 계산을 하고, 반환할 때는 다시 "mm:ss" 형식으로 포매팅 해서 반환해 주어야 함.현재 시간이 오프닝 위치 안에 있을 때는 자동으로 SkipOp() 메서드가 호출된다. ⭐ 3. 정답코드imp..
🤖 1. 문제설명문제 설명n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다.모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제..