https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀릴거같은데 안풀려서 애먹은 문제... 문제에 접근하는 방향을 잡는게 어려웠다. 문제 조건 : 요청 시간, 작업 소요 시간이 주어지고 -> 이것을 바탕으로 평균 요구 시간의 최소를 구해야 함 요청이 들어왔을 경우, 해당 시간에 대기 중인 여러 프로세스가 있는 경우, 소요 시간이 가장 적은 프로세스부터 처리 해야 함 그러므로, 바로 직전 프로세스가 작업이 끝난 후 실행 예정인 프로세스 목록은 다음과..
분류 전체보기
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 실행 대기 큐에서 프로세스 하나 꺼냄 프로세스의 우선순위 확인 우선 순위가 제일 높지 않은 경우 : 다시 큐에 넣음(뒤에) 우선 순위가 제일 높은 경우 : 프로세스 실행 -> 종료 idx == location인 프로세스의 실행 순서 return 우선 순위가 필드인 프로세스 선언 + PriorityQueue 사용 => 테스트 케이스 틀림 → PriorityQueue의 정렬 방식은 부모 노드와 비교해..
https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { static HashMap musicByGenre = new HashMap(); //재생횟수를 장르 고유 인덱스로 사용 static Map genreCnt; public int[] solution(String[] genres, int[] plays) { List ans = new ArrayList(); genreCnt = count..
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public int solution(int bridge_length, int weight, int[] truck_weights) { int time = 0; Queue queue = new LinkedList(); int idx = 0, nw = 0; Set leaveTime = new HashSet(); while (idx < t..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 # 처음 오답 코드 import java.util.*; class Solution { public boolean solution(String[] phone_book) { boolean answer = true; Arrays.sort(phone_book, new Comparator() { @Override public int compare(String o1, String o2) { if (o..
https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net DP문제라고 해서 규칙성 찾는 것에 너무 매몰되지 말 것. 전반적인 흐름을 보자 길이가 N-1인 계단수의 개수가 An-1이라면, An = 2*An-1 - (N-1에서 1, 8의 개수) 9 - (9*2-1 = 17) - (17 * 2 - 2 = 32) ... 그 전 자릿수가 k였다면, 다음 자릿수로는 k+1, k-1이 가능하다. 전 자릿수가 1, 8인 경우 0, 9 가 발생 된다. 1, 8의 개수는 결국 0, 2, 7, 9의 개수와 동일함 -> 얘만 볼게 아니라 전체적으로 따지는게 편함 dp[N-1][K] : 길..
https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int N; static int[] stairs; static int[][] dp; public static void main(String[] args) throws IOException { Buf..
https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] dp = new int[N + 1]; dp[0] = 1; dp[1] = 1; if(N >= 2) { for (int i = 2; i 2)
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { static int[] pm; static int tn, answer = 0; public int solution(int[] numbers, int target) { pm = numbers.clone(); tn = target; dfs(0, 0); return answer; } public void dfs(int idx, int a..
https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main_1038 { static List numbers = new ArrayList(); public static void main(String[] args) { Sca..
https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어 www.acmicpc.net 시간 복잡도를 고려해서 생각할 것... 재귀로 풀어서는 택도 없음 -> 저번 문제처럼 dp를 사용하자 더보기 틀린 코드 - 재귀 활용 import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main_2294 { static int n, k, tmp, min; s..
https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { public String solution(String number, int k) { StringBuilder answer = new StringBuilder(number); int idx = 0, cnt = k; while (true){ if(cnt == 0 || idx >= answer.length()-1) break; if(an..