[백준 17450] 과자 사기 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
가성비가 가장 좋은 과자를 선택하는 문제입니다.
10봉지 총 가격이 5000원 이상이면 500원 할인이 적용됩니다.
접근법
각 과자의 10봉지 총 가격과 총 무게를 계산합니다.
할인 조건을 적용한 뒤, 무게를 가격으로 나눈 값이 가장 큰 과자를 선택합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
class Program {
static void Main() {
var names = new[] { "S", "N", "U" };
var bestVal = -1.0;
var bestIdx = 0;
for (var i = 0; i < 3; i++) {
var line = Console.ReadLine()!.Split();
var p = double.Parse(line[0]);
var w = double.Parse(line[1]);
var price = p * 10;
var weight = w * 10;
if (price >= 5000) price -= 500;
var val = weight / price;
if (val > bestVal) {
bestVal = val;
bestIdx = i;
}
}
Console.WriteLine(names[bestIdx]);
}
}
C++
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
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
const char* names[3] = {"S", "N", "U"};
double bestVal = -1.0;
int bestIdx = 0;
for (int i = 0; i < 3; i++) {
double p, w; cin >> p >> w;
double price = p * 10.0;
double weight = w * 10.0;
if (price >= 5000.0) price -= 500.0;
double val = weight / price;
if (val > bestVal) {
bestVal = val;
bestIdx = i;
}
}
cout << names[bestIdx] << "\n";
return 0;
}