![[Java] 단어 퍼즐 - Lv4 프로그래머스 / DP](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEqgYp%2FbtsqJEROcax%2FCiG3GyPsN3tr5vXpoQZCU1%2Fimg.png)
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12983?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 DP를 사용하여 Bottom Up으로 풀이했고, 문제 예시에서의 banana로 예를 들어보자. b ba ban bana banan banana dp배열의 각 idx는 위의 값들을 만족하는 최소값들로 채워나갔다. strs의 원소에서, t의 인덱스마다 같은 substring이 있는지 확인하였고, 같다면 dp배열에 입력해나갔다. //strs에서 선택한 문자열과 ..
![[Java] N으로 표현 - Lv3 프로그래머스 / 동적 계획법(Dynamic Programing)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckguSB%2FbtsdY2ZqEdy%2FUnd9DJiRGSUC3AKVZTw0V1%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 최소 반복 횟수를 구하는 문제이기 때문에 Bottom-Up방식을 활용해서 8번 반복할 때까지 해당 해가 있는지 찾고, 반복횟수가 9번째가 될 때 answer = -1로 리턴해주게 하자.. 라고 생각하며 코드를 작성했다. (DP공부를 한 뒤, 간단한 문제들을 풀고 처음으로 푸는 높은 난이도(??)의 문제라 설명이 부족할 수 있음.. 지나가던 고수분들 계시면 고쳐주시면 감사하겠습니다. 많은 ..
![[Java] H-Index - Lv2 프로그래머스 정렬 / 프로그래머스 고득점 Kit](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpZllA%2FbtsdG6fv2aL%2FQkow4Fkiisck1LVKG3107k%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. i의 최대길이를 논문의 인용 횟수 최대 크기 h로 설정 2. h번 이상 인용된 논문이 h편 이상이고.... 문제 설명에 말이 좀 애매한데 다시 설명하면 - ex)h=3 : 3번 이상 인용된 논문이 3편 이상이다. 똑같나..?ㅋㅋ;; 3. 인용된 횟수를 세는 cnt 변수를 통해 h번 이상 인용된 논문일 경우 ++; 4. 인용된 논문 개수가 조건 횟수 이상일경우 answer에 넣는다. - ..
![[Java] 가장 큰 수 - Lv2 프로그래머스 정렬 / 프로그래머스 고득점 Kit](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFsPZk%2FbtsdY3wZdHs%2FklKZk6acOTv2PT32wGM8E0%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫 풀이 numbers.length
![[Java] K번째수 - Lv1 정렬 프로그래머스 / 프로그래머스 고득점 Kit](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2dW62%2FbtsdIpeABPs%2FGXjkBph0aKLaDqwCXP5BBk%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import java.util.Arrays; class Solution{ public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; int ansidx=0; for(int i=0; i
![[Java] 모음사전 - Lv2 프로그래머스 완전탐색 / 코딩테스트 고득점 Kit](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxMSVh%2FbtsaSkhAX19%2F0qJkyumQknYaydJEdRlf51%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 DFS를 이용해서 간단하게 풀어냈다. class Solution { static int idx = 0; static int answer = -1; public int solution(String word) { dfs(word, ""); return answer; } public void dfs(String word, String text) { if(answer > 0) return; if(w..
![[Java] 피로도 - Lv2 프로그래머스 완전탐색 / 코딩테스트 고득점 Kit](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMTM0l%2FbtsaKyGKUmL%2FPPlWmjXkk7ViA65tzgeqfk%2Fimg.png)
https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이제 어느정도 기본 DFS문제는 감이 온 것 같다 백트래킹으로 던전 탐사가 가능한 최대값을 구해줬다. class Solution { static int join = 0; public int solution(int k, int[][] dungeons) { boolean[] bl = new boolean[dungeons.length]; dfs(dungeons, bl, 0, k, 0, 0); re..
![[Java] 숫자 뽑기 - 프로그래머스 / COS Pro 1급 Java 모의고사](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRgnrM%2Fbtsar3eXxJv%2Fce6NNa06RfKWFGqD41Y2Kk%2Fimg.png)
https://school.programmers.co.kr/learn/courses/11132/lessons/71156 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제에서, K만큼을 뽑아내어 가장 큰 수 - 가장 작은 수의 최소를 구하라고 했다. 처음에는 재귀를 통해 완전탐색을 하려하다가, 정렬을 통해 K만큼을 뽑아내면 되지 않나 생각했더니 엄청 간단하게 풀렸다. 1. 오름차순 정렬 후 answer 초기화 (배열의 가장 큰 수인 arr의 마지막값) 2. K를 뽑을 수 있는 경우의 수인 arr의길이-K만큼만 반복을 돌린다. 3. 돌리는 과정에서, ..