제5회 대학생 프로그래밍 경시대회 문제 A 장보기

소스코드

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class Shopping {
public static void main(String[] args) {
/*int[][] order = {
{300, 2000},
{200, 1500}
};*/
/*int[][] order = {
{320, 2139},
{700, 3200},
{1400, 6400}
};*/
int[][] order = {
{250, 1920},
{500, 2980},
{430, 2700},
{380, 2350},
{340, 2310}
};
System.out.println(choose(order));
}
public static int choose(int[][] order) {
// 1g 당 가격의 최소값
long min = Long.MAX_VALUE;
// 그 때의 원래 가격
int cost = 0;
for(int i = 0; i < order.length; i++) {
// 현재 물건의 1g 당 가격
long p = order[i][1] / order[i][0];
// 기존의 물건 보다도 중량 대비 더 싸다면 가격을 저장한다.
if(p < min) {
min = p;
cost = order[i][1];
} else if(p == min) { // 같다면 더 낮은 가격을 저장한다.
if(order[i][1] < cost) {
cost = order[i][1];
}
}
}
return cost;
}
}

주절주절

너무 옛날에 풀어서 정확히 기억이 안난다. 시간나면 다시 풀어보아야겠다.

Share Comments