Algorithm
-
[프로그래머스/JAVA] 구명보트Algorithm 2024. 10. 16. 15:31
- 문제 풀이 1.몸무게 배열 정렬import java.util.*;class Solution { public int solution(int[] people, int limit) { int answer = 0; // [50, 50, 70, 80] // [50, 70, 80] Arrays.sort(people); 2. 가장 무거운 사람부터 순회하면서 보트에 태울 수 있는 사람들을 짝지어 태운다. int index = 0; // 가장 가벼운 사람의 인덱스 // 무거운 사람 -> 가벼운 사람 순으로 순회 for(int i = people.length - 1; i >= index; i--) { 배열의 끝에서부터 시작하여, ..
-
[프로그래머스/JAVA] 체육복Algorithm 2024. 10. 15. 21:25
https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이도난당하지 않은 학생 수를 기본적으로 계산합니다.여벌 체육복이 있지만 도난당한 학생을 먼저 처리해 중복을 방지합니다.나머지 여벌 체육복을 가진 학생들이 앞뒤 학생에게 빌려줄 수 있는지 확인합니다.최종적으로 체육복을 가진 학생 수를 반환합니다. 1. 학생 번호 순차적으로 배치 lost와 reserve 배열을 정렬하여, 학생들의 번호가 순서대로 배치되도록 합니다.import java.util...
-
[프로그래머스/JAVA] 여행경로Algorithm 2024. 10. 14. 20:20
https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이 1.변수 선언 및 초기화list: 모든 가능한 경로를 저장하는 리스트입니다. 탐색을 마친 경로는 여기에 저장됩니다.visited: 각 항공권이 사용되었는지 여부를 기록하는 배열입니다. 이미 사용한 티켓을 다시 사용하지 않도록 하기 위한 배열입니다.import java.util.*;class Solution { // 방문한 경로들을 저장할 리스트 static ArrayList l..
-
[프로그래머스/JAVA] 단어 변환Algorithm 2024. 10. 6. 16:35
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이visited 배열과 answer 변수를 초기화.dfs 함수를 통해 재귀적으로 변환 과정을 탐색.한 글자 차이가 나는 단어로만 변환을 시도.모든 경로를 탐색하면서 목표 단어에 도달하면 cnt 값을 answer에 저장.탐색 완료 후 최종 변환 횟수를 반환. 1. 변수 초기화:visited: 각 단어가 변환 과정에서 이미 사용되었는지 확인하기 위한 배열입니다. 길이는 주어진 words 배열의 ..
-
[프로그래머스/JAVA] 네트워크Algorithm 2024. 10. 5. 20:03
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이1. 모든 컴퓨터를 한 번씩 방문합니다.2. 방문한 컴퓨터와 연결된 컴퓨터들을 탐색해 같은 네트워크로 묶습니다.3. 방문하지 않은 컴퓨터를 만나면 새로운 네트워크로 간주합니다.4. DFS(깊이 우선 탐색)를 사용해 각 네트워크를 탐색합니다. + DFS가 필요한 이유?DFS를 사용하면 한 컴퓨터에서 시작해 연결된 모든 컴퓨터를 방문할 수 있습니다. 이때 방문한 컴퓨터는 다시 방문하지 않도록 ..
-
[프로그래머스/JAVA] 타겟 넘버Algorithm 2024. 9. 18. 22:08
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이이 함수는 재귀적으로 모든 경우의 수를 탐색합니다.매 단계마다 현재 숫자를 더하거나 빼는 두 가지 선택지가 있습니다. 깊이 우선 탐색(DFS)으로 경우의 수 탐색 private void dfs(int depth, int[] numbers, int target, int sum) { // 모든 숫자를 다 사용했을 때 (depth가 numbers의 길이와 같을 때) if (depth..
-
[알고리즘/JAVA] 문법 정리Algorithm 2024. 9. 18. 22:08
- 문자열 관련 String str = "abcde";str.charAt(2) // 인덱스로 문자 찾기, c 반환str.equals("abcde"); // str과 abcde를 비교해서 같으면 true, 다르면 false - String.format문자열 형식 설정할 때 사용// 문자열 소수점 4째자리까지 형태일 때String.format("%s %.4f%n", s, percentage); // 시분초 HHMMSS 형식으로 포맷 (EX) 11시 01분 00초)for(int h = 0; h - String과 StringBuilder의 차이 ?? • StringBuilder는 가변 객체이므로, 기존 객체를 그대로 사용하여 문자열을 수정할 수 있습니다. • 문자열을 추가하거나 삭제하는 작업이 반복될 때마다..
-
[프로그래머스/JAVA] 모음사전Algorithm 2024. 9. 18. 22:08
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr- 문제 풀이 1. 필드 및 변수 정의 static List list;static String[] words = {"A", "E", "I", "O", "U"}; list : 모든 단어를 저장할 리스트입니다. 2. 재귀 함수 (dfs)를 통한 단어 생성 static void dfs(String str, int depth) { list.add(str); if (depth == 5) ret..