문제 : 모의고사 - 프로그래머스 풀이과정 풀이를 진행하기 위해 먼저 Student 클래스를 만든다. 각 Student 클래스의 인스턴스(수포자)는 자신이 찍는 방법을 가지고 있다. 시험 문제의 정답지가 주어지면 자신이 찍는 방법과 비교하여 채점을 진행할 수 있다. 최종 점수를 가지고 있다. 이후 진행 과정은 아래와 같다. 주어진 수포자 정보에 따라 Student 클래스의 인스턴스들을 생성한다. 1에서 만들어진 인스턴스들(수포자들)에게 채점을 진행시킨다. 최고점수를 확인한다. 최고점수와 동일한 점수를 가진 학생들을 찾아 반환한다. 풀이 자체는 간단하게 진행할 수 있지만, Student 클래스를 생성하면서 어디까지가 Student 클래스 내로 들어가야 하는 역할이고, 어디부터가 그렇지 않은지를 생각하는 것..
문제 : programmers.co.kr/learn/courses/30/lessons/42747?language=java 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 아이디어 Insertion sorting 방법을 이용하기 n개의 논문 중 h회 이상 인용된 논문이 h개 이상일 때 그 h-index는 h이다. 따라서 h-index 값은 0 이상, n 이하가 된다. citations array를 역순으로 sorting 한 뒤, h값의 후보로 n부터 0까지(=candidate) ..
문제 : programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 아이디어 서로 이어 붙였을 때 더 큰 수를 만들기 위해 다음과 같은 방법을 사용하였다. 문제에서 주어진 조건에 의해 배열의 각 원소는 [0, 1000]의 범위를 가지므로, 각각의 원소가 모두 네 자릿수가 되도록 반복해서 이어붙여준 reformattedValue를 만들었고, 이를 기준으로 주어진 배열을 내..
문제 : programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 코드 import java.util.ArrayList; import java.util.List; import java.util.Stack; public class StockPrice { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; //..
문제 : programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 문제를 처음 읽을 때에는 단순히 priority queue 를 사용하여 해결하는 문제인 것 처럼 보였다. 하지만 내장된 PriorityQueue를 사용하려고 하면 다음과 같은 문제를 맞닥뜨리게 된다. 동일한 priority를 가지는 elements의 순서가 unstable 하다. 하나의 element를 poll 했을 때, 이 element보다 높은 priority를 가지..
문제 : programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 아이디어 현재까지의 진행도(progress)와 매일매일의 작업 진행량(speed)이 주어졌을 때, 이 기능이 배포될 때 까지 필요한 날짜는 다음과 같다. ceil( (100 - progress) / speed ) 각 작업이 위 식을 통해 구한 배포까지 필요한 날짜를 가지고 있게 하면 다음과 같은 방법을 통해서 쉽게 결과를 구할 수 있다. Queue를 만들고 전..
문제 : programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 풀이과정 트럭이 다리에 진입하려고 하는 경우, 두 가지 경우의 수가 존재한다. 트럭이 다리에 진입할 수 있는 경우 다리의 무게제한을 초과하기 떄문에 트럭이 다리에 진입할 수 없는 경우 1의 경우처럼 트럭이 다리에 진입하는데 아무런 문제가 없을 경우, 현재 다리 위에 있는 모든 트럭을 한칸씩 이동시킨 후 진입 대기중인 트럭을 다리에 진입시킨다. 이후 다..
- Total
- Today
- Yesterday
- 알고리즘
- 자바
- 데브코스
- 연습문제
- 큐
- 정렬
- Hash
- Sorting
- BFS
- Queue
- dfs
- 멀리 뛰기
- stack
- 힙
- java
- 완전탐색
- greedy
- 그래프
- 백준
- 프로그래머스
- 해시
- programmers
- DP
- 탐욕법
- 동적계획법
- dynamic programming
- Algorithm
- 코딩테스트
- Heap
- 자료구조
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |