728x90
난이도 : 실버4
풀이일 : 07204
https://www.acmicpc.net/problem/1049
링크로 이동하기 귀찮은 분들을 위한 문제 캡쳐
예제는 링크를 따라가시면 세 가지가 더 있습니다.
풀이 코드
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int M = scan.nextInt();
// 6개, 1개 최소값
int mini_six = N*N*N;
int mini_one = N*N*N;
// 판매단위별 최소값 저장
for (int i = 0; i < M; i++) {
int six = scan.nextInt();
if (six < mini_six) {
mini_six = six;
}
int one = scan.nextInt();
if (one < mini_one) {
mini_one = one;
}
}
// 한 개씩 살때가 더 쌀 경우
if (mini_one*6 < mini_six) {
System.out.println(mini_one*N);
}
// 여섯개 묶음이 더 쌀 경우
else {
// 줄 개수 맞춰 사는게 더 쌀 경우
if (N/6*mini_six+N%6*mini_one < (N/6+1)*mini_six)
System.out.println(N/6*mini_six+N%6*mini_one);
// 줄 개수 남기는게 더 쌀 경우
else {
System.out.println((N/6+1)*mini_six);
}
}
}
}
- 6개, 1개 단위 구매가 중 최저가 저장
- 1개 구매가 싸다면 1개 단위 최저가 * 필요한 줄의 개수 출력
- 6개 구매가 더 싸다면
- 6개 구매로 줄을 남기는 경우, 아닌 경우 비교 후 작은 값 출력
느낀점
막상 풀면 오래 걸리지 않는데 자꾸 알고리즘을 건너뛰게 된다.
매일매일 꾸준히 풀자
'알고리즘 > 🥈 실버' 카테고리의 다른 글
백준 1138 한 줄로 서기 자바 풀이 (0) | 2023.07.26 |
---|---|
백준 3273 두 수의 합 자바 풀이 (0) | 2023.07.24 |
백준 11866 요세푸스 문제0 자바 풀이 (0) | 2023.07.09 |
백준 9095 1, 2, 3, 더하기 자바 풀이 (0) | 2023.07.09 |
백준 1021 회전하는 큐 자바 풀이 (0) | 2023.07.08 |