-
[BOJ 4749] Take Your Vitamins문제 풀이/Baekjoon Online Judge 2023. 2. 9. 16:39
난이도: Bronze I
태그
더보기- Mathematics
- String → Parsing
풀이
1. 출력되는 \( P \)는 어떻게 계산할까?
더보기\( P \)를 빼고는 입력에서 주어진 정보와 동일하니, 바로 출력해주면 됩니다.
그럼 \( P \)는 어떻게 계산할까요?
\( P = \frac{A}{R} \times 100 \)입니다. 다르게 말하자면 (함유량) ÷ (권장량)을 백분율로 나타낸 거죠.
물론, 이 \( P \)가 \( 1 \)보다 작으면 조건문으로 빼주고, 나중에 Provides no significant amount of: 뒤에 출력해줘야 하겠죠.
2. 구현 디테일
더보기\( V \)에는 공백이 들어올 수도 있기 때문에, 공백까지 같이 입력받아줘야 합니다.
하지만 공백을 기준으로 한 줄을 통째로 입력받는 건 앞에 있는 \( A, U, R \) 역시 분리해줘야 한다는 의미죠.
대신에, \( V \)가 맨 마지막에 온다는 점을 이용해서
\( A, U, R \)만 평상시대로 입력받고, \( V \)만 getline으로 입력받는 걸 생각해볼 수 있습니다.
물론 \( R \) 뒤에 나오는 공백은 잘 무시해줘야겠죠.
3. 코드
더보기123456789101112131415void Main(){vector<string> s;while (1){ld a, r; string u, v; cin >> a >> u >> r;cin.ignore(); getline(cin, v);if (a < 0){ break; }ld p = a*100/r; if (p < 1){ s.push_back(v); }else{cout.precision(1); cout << v << ' ' << a << ' ' << u << ' ';cout.precision(0); cout << p << '%' << endl;}}cout << "Provides no significant amount of:" << endl;for (string x : s){ cout << x << endl; }}cs '문제 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
[Baekjoon - 27324] ゾロ目 (Same Numbers) (0) 2023.02.13 [Baekjoon - 22352] 항체 인식 (0) 2023.02.10 [27331] 2 桁の整数 (Two-digit Integer) (0) 2023.02.08 [26082] WARBOY (0) 2023.02.08 [25439] 죄수들의 도전 (0) 2023.02.08