programmers 9

[Programmers] 피로도 (Java) ⭐️

https://school.programmers.co.kr/learn/courses/30/lessons/87946 문제 정의유저의 현재 피로도 k와 각 던전별"최소 필요 피로도", "소모 피로도"가 담긴 2차원 배열 dungeons가 주어질 때,유저가 탐험할 수 있는 최대 던전 수를 return 문제 풀이 DFS와 백트래킹을 활용한 완전탐색 문제. 던전의 모든 가능한 탐험 순서를 탐색하되, 현재 피로도가 부족한 던전은 가지치기한다. 탐색을 마치면 방문 상태를 복구해 다른 경로를 탐색한다.DFS: 던전을 탐험하는 여러 순서를 깊이 우선으로 탐색완전탐색: 가능한 모든 탐험 순서를 확인해 최대 탐험 횟수 계산가지치기(Pruning): 현재 피로도가 최소 필요 피로도보다 낮으면 해당 던전은 탐험하지 않백트래킹(..

💯 Algorithm 2026.10.30

[Programmers] H-Index (Java) ⭐️

https://school.programmers.co.kr/learn/courses/30/lessons/42747 문제 정의어느 과학자의 H-Index를 returnㄴ H-Index란 발표한 논문 n편 중 h번 이상 인용된 논문이 h편 이상이고, 나머지 논문은 h번 이하 인용되도록 하는 h의 최댓값 문제 풀이import java.util.*;class Solution { public int solution(int[] citations) { Arrays.sort(citations); int n = citations.length; for (int i = 0; i = h) { return h; ..

💯 Algorithm 2026.10.30

[Programmers] 괄호 회전하기 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/76502 문제 정의대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s이 s를 왼쪽으로 x(0 올바른 괄호 문자열이 되는 횟수를 return 문제 풀이1️⃣ Queue로 회전시키고 Stack으로 검증import java.util.*;class Solution { public int solution(String s) { int answer = 0; Queue queue = new ArrayDeque(); for (char c : s.toCharArray()) queue.offer(c); for (int i..

💯 Algorithm 2026.10.29

[Programmers] 영어 끝말잇기 (Java) ⭐️

https://school.programmers.co.kr/learn/courses/30/lessons/12981 문제 정의n명의 사람이 words 배열의 영단어를 순서대로 말하며 끝말잇기를 한다.가장 먼저 탈락하는 사람의 번호와 그 사람이 자신의 몇 번째 차례에 탈락하는지를 구해서 return만약 주어진 단어들로 탈락자가 생기지 않는다면, [0,0]을 return 문제 풀이import java.util.*;class Solution { public int[] solution(int n, String[] words) { Set set = new HashSet(); set.add(words[0]); for (int i = 1; i ✅ ..

💯 Algorithm 2026.10.29

[Programmers] 점프와 순간 이동 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/12980 문제 정의아이언 슈트의 기능(현재까지 온 거리) x 2에 해당하는 위치로 순간이동 → 건전지 사용량 소모 XK칸을 앞으로 점프 → K만큼의 건전지 사용량 소모됨이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return순간이동을 잘 활용하여, 가장 효율적으로 갈 수 있는 방법을 찾아야하는 문제 문제 풀이import java.util.*;public class Solution { public int solution(int n) { int answer = 0; while (n > 0) { i..

💯 Algorithm 2026.10.29

[Programmers] 귤 고르기 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/138476 문제 정의귤의 크기를 담은 배열 tangerine에서 k개만 골라 한 상자에 담으려고 한다.귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 return 문제 풀이1️⃣ Map과 List의 정렬 활용import java.util.*;class Solution { public int solution(int k, int[] tangerine) { Map map = new HashMap(); for (int t : tangerine) { map.put(t, map.getOrDefault(t, 0) + 1); }..

💯 Algorithm 2026.10.28

[Programmers] 이진 변환 반복하기 (Java)

https://school.programmers.co.kr/learn/courses/30/lessons/70129문제 정의s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때,이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 문제 풀이1️⃣ 시간 복잡도 O(N^2)import java.util.*;class Solution { public int[] solution(String s) { List tmp = new ArrayList(); for (char c : s.toCharArray()) tmp.add(c); int changedCnt = 0; int removedZero..

💯 Algorithm 2026.10.28