Skip to content

Commit fdbdc90

Browse files
committed
[Bronze II] Title: 장보기, Time: 128 ms, Memory: 15044 KB -BaekjoonHub
1 parent 4a9c0e2 commit fdbdc90

2 files changed

Lines changed: 77 additions & 0 deletions

File tree

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# [Bronze II] 장보기 - 9070
2+
3+
[문제 링크](https://www.acmicpc.net/problem/9070)
4+
5+
### 성능 요약
6+
7+
메모리: 15044 KB, 시간: 128 ms
8+
9+
### 분류
10+
11+
수학, 구현, 사칙연산
12+
13+
### 제출 일자
14+
15+
2026년 4월 8일 13:12:50
16+
17+
### 문제 설명
18+
19+
<p>평소 맛살을 즐겨 먹는 혜선은 맛살을 구입하러 2-마트에 갔다. 식품코너에서 맛살을 고르면서 혜선은 고민이 되기 시작했다. 여러 업체에서 나온 맛살들이 들어있는 개수도 다르고 가격도 다르기 때문에 어떤 것을 사야 싼 가격에 많이 먹을 수 있을지 생각해야 했기 때문이다. </p>
20+
21+
<p>혜선은 현명하게도 각 맛살에 써진 중량(g)과 가격(원)을 다 조사해서 같은 가격으로 최대한 많은 중량을 살 수 있는 맛살을 사기로 했다. 혜선의 고민을 해결해 줄 프로그램을 작성하시오.</p>
22+
23+
### 입력
24+
25+
<p>입력은 표준입력(standard input)을 통해 받아들인다. 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스는 첫째 줄에는 맛살의 종류 N이 주어지고 두 번째 줄부터는 각 맛살의 중량(g) W와 가격(원) C가 순서대로 공백 하나를 사이에 두고 한 줄에 하나씩 N개가 주어진다. (1 ≤ N ≤ 100, 1 ≤ W ≤ 5000, 1 ≤ C ≤ 100000, W와 C는 정수)</p>
26+
27+
### 출력
28+
29+
<p>출력은 표준출력(standard output)을 통하여 출력한다. 각 테스트 케이스에 대해서 혜선이 사야 하는 맛살의 가격을 한 줄에 하나씩 출력하시오. 같은 가격으로 살 수 있는 최대 중량이 같은 맛살이 두 개 이상인 경우는 낮은 가격의 것을 사기로 한다. </p>
30+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import java.io.BufferedReader;
2+
import java.io.InputStreamReader;
3+
import java.util.StringTokenizer;
4+
5+
public class Main {
6+
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
static StringBuilder sb = new StringBuilder();
8+
static StringTokenizer st;
9+
static int n = 0, m = 0;
10+
static boolean[] visited;
11+
12+
public static void main(String[] args) throws Exception {
13+
int t = Integer.parseInt(br.readLine());
14+
15+
for (int i = 0; i < t; i++) {
16+
int amount = Integer.parseInt(br.readLine());
17+
int[][] arr = new int[amount][2];
18+
19+
for (int j = 0; j < amount; j++) {
20+
st = new StringTokenizer(br.readLine());
21+
arr[j][0] = Integer.parseInt(st.nextToken());
22+
arr[j][1] = Integer.parseInt(st.nextToken());
23+
}
24+
25+
//같은 가격으로 최대한 많은 중량을 살 수 있는 맛살
26+
int goodIdx = 0;
27+
double min = Double.MAX_VALUE;
28+
for( int j = 0; j < amount; j++) {
29+
double cur = (double) arr[j][1] / arr[j][0];
30+
31+
//1g에 가격이 제일싸냐?
32+
if(cur < min) {
33+
goodIdx = j;
34+
min = cur;
35+
} else if(cur == min && arr[j][1] < arr[goodIdx][1]) {
36+
goodIdx = j;
37+
}
38+
}
39+
40+
System.out.println(arr[goodIdx][1]);
41+
42+
}
43+
44+
45+
46+
}
47+
}

0 commit comments

Comments
 (0)