728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 A와 B가 공백으로 구분되어 주어진다. 둘째 줄에 C와 D가 공백으로 구분되어 주어진다. 모든 수는 100보다 작거나 같은 양의 정수이다.
출력
첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다.
소스코드
#include <iostream> using namespace std; int main(void) { int cnt, ans; double a, b, c, d, max = 0, tmp; cin >> a >> b >> c >> d; for (cnt = 0; cnt < 4; cnt++) { switch (cnt) { case 0: tmp = a / c + b / d; break; case 1: tmp = c / d + a / b; break; case 2: tmp = d / b + c / a; break; case 3: tmp = b / a + d / c; break; } if (tmp > max) max = tmp, ans = cnt; } cout << ans; }
Tip
수학 분류라고 써있긴 하나 그냥 네 가지 케이스 중 가장 큰 값만 찾으면 되는 문제다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 2578 - 빙고(한국정보올림피아드 2006;KOI 2006 지역본선) (0) | 2018.08.16 |
---|---|
백준] 15969 - 행복(한국정보올림피아드 2018;KOI 2018 전국) (0) | 2018.08.15 |
백준] 14720 - 우유 축제(충남대학교 생각하는 프로그래밍 대회) (0) | 2018.08.08 |
백준] 5566 - 주사위 게임(JOI 2010 예선) (0) | 2018.08.05 |
백준] 11728 - 배열 합치기 (0) | 2018.08.04 |