문제 링크 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에서 선택한 문자열과 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 첫 풀이 최소 반복 횟수를 구하는 문제이기 때문에 Bottom-Up방식을 활용해서 8번 반복할 때까지 해당 해가 있는지 찾고, 반복횟수가 9번째가 될 때 answer = -1로 리턴해주게 하자.. 라고 생각하며 코드를 작성했다. (DP공부를 한 뒤, 간단한 문제들을 풀고 처음으로 푸는 높은 난이도(??)의 문제라 설명이 부족할 수 있음.. 지나가던 고수분들 계시면 고쳐주시면 감사하겠습니다. 많은 ..
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에 넣는다. - ..
https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 첫 풀이 numbers.length
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
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..
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..
https://school.programmers.co.kr/learn/courses/11132/lessons/71156 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제에서, K만큼을 뽑아내어 가장 큰 수 - 가장 작은 수의 최소를 구하라고 했다. 처음에는 재귀를 통해 완전탐색을 하려하다가, 정렬을 통해 K만큼을 뽑아내면 되지 않나 생각했더니 엄청 간단하게 풀렸다. 1. 오름차순 정렬 후 answer 초기화 (배열의 가장 큰 수인 arr의 마지막값) 2. K를 뽑을 수 있는 경우의 수인 arr의길이-K만큼만 반복을 돌린다. 3. 돌리는 과정에서, ..