Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Elasticsearch
- 백준
- 읽기쉬운코드
- Baekjoon
- 애자일
- 프레임워크
- 클린코드
- ES
- 코딩테스트
- 개발
- 그리디
- 개발자
- cleancode
- 그리디알고리즘
- framework
- Java
- 코딩
- 자바
- 스프링
- 알고리즘
- 애자일기법
- 데이터베이스
- spring boot
- API
- database
- 엘라스틱서치
- JPA
- 애자일프로그래밍
- Spring
- 코드
Archives
- Today
- Total
튼튼발자 개발 성장기🏋️
[1049번] 기타줄 본문
반응형
문제 기출 : [https://www.acmicpc.net/problem/1049]
풀이 방법
[그리디 알고리즘]으로 접근 낱개의 가격과 6개세트의 가격을 별도로 array에 담는다. 그리고 각각의 가격에서 최소 값이면서 끊어진 라인의 수보다 크거나 같으면 된다.
최소값을 먼저 만족시키기위해 오름차순으로 sort 진행해서 가장 작은 0번째 값으로 먼저 체크하면 최대한 빠르게 찾을 수 있다. |
문제 풀이
public class Main {
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int answer = 0;
try {
StringTokenizer oneLine = new StringTokenizer(br.readLine(), " ");
int crushLine = Integer.parseInt(oneLine.nextToken());
int brands = Integer.parseInt(oneLine.nextToken());
int[] manyAmounts = new int[brands];
int[] oneAmounts = new int[brands];
for (int i = 0; i < brands; i++) {
oneLine = new StringTokenizer(br.readLine(), " ");
manyAmounts[i] = Integer.parseInt(oneLine.nextToken());
oneAmounts[i] = Integer.parseInt(oneLine.nextToken());
}
Arrays.sort(manyAmounts);
Arrays.sort(oneAmounts);
int oneMin = oneAmounts[0];
int manyMin = manyAmounts[0];
while (crushLine > 0) {
if (crushLine < 6) {
answer += Math.min(oneMin * crushLine, manyMin);
crushLine -= 6;
} else {
if (oneMin * 6 >= manyMin) {
crushLine -= 6;
answer += manyMin;
} else {
crushLine -= 6;
answer += (oneMin * 6);
}
}
}
System.out.println(answer);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
반응형
'Business logic > 백준' 카테고리의 다른 글
[1138번] 한 줄로 서기 (0) | 2020.04.12 |
---|---|
[1120번] 문자열 (0) | 2020.04.11 |
[11047번] 동전 0 (0) | 2020.04.11 |
[1080번] 행렬 (0) | 2020.04.10 |
[10610번] 30 (0) | 2020.04.10 |