티스토리 뷰
이 장애같은 문제에서 시간을 얼마나 날렸는지 모른다. 사실 분기문으로 해결하면 쉬운 문제인데 printf 와 scanf만 사용하도록 제한이 되어있다.
자료형의 형변환과 올림, 반올림, 내림만 확실하게 숙지하고 있다면 쉽게 해결할 수 있는 문제이지만 반올림을 4.9로 해야한다는 함정이 있었다.
문제와 풀이를 살펴보도록 하겠다.
대부분의 사람들은 연구실에 있는 모든 컴퓨터를 가동하면 얼마 만큼의 전기가 소비되는지 를 인식하지 못한다.
퓨즈가 견딜수 있는 한도를 초과하면 퓨즈가 쉽게 녹을수 도 있다.
전기가 얼마나 필요한 지를 계산하는 것은 쉬운 작업이지만 계속 반복하는 것은 아주 따분한 일이다. 이를 계산하는 일을 도와 주는 것이 일이다.
다음은 각 기기가 소비하는 전기량이다.
- 본체 한대가 소비하는 전류 1.5 amperes
- 모니터 한대가 소비하는 전류 1.0 amperes
- 프린터 한대가 소비하는 전류 2.0 amperes
- 라우터 한대가 소비하는 전류 0.5 amperes
컴퓨터 한대에 하나의 모니터가 있다.
퓨즈는 각 모든 소비 전기의 최소 두 배를 견딜수 있는 것으로 준비해야 한다. 그리고 퓨즈의 용량은 10 , 20 , 30 , ... 10 의 배수 단위로 사용된다.
입력
입력은 세 개의 음이 아닌 정수가 주어진다. 차례대로 컴퓨터 , 프린터 , 라우터의 수이다. 반드시 컴퓨터의 수보다 다른 기기의 수가 적을 필요는 없다.(실험실이니)
모든 수는 100 이하이다.
출력
최소 퓨즈의 용량을 출력 예의 형식으로 출력한다.
입출력 예
입력 10 2 1 출력 60 amperes 입력 5 4 0 출력 50 amperes
입출력 보충
첫 번째 입출력 예에서
- 컴퓨터의 수가 10 이니 본체의 수와 모니터의 수는 각 10 대 ...(1.5 + 1.0)* 10 = 25
- 프린터 2 대 ... 2.0 * 2 = 4.0
- 라우터 1 대 ... 0.5
총 전류의 합 25 + 4.0 + 0.5 = 29.5
퓨즈는 2 배이상이고 10 의 배수단위의 용량을 사용해야 하므로 29.5 * 2 = 59 ---> 60
이 문제를 나는 아래와 같이 풀었다. 조금 조잡한 이유로 문제 해결을 위한 참고용으로만 사용하시라.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <stdio.h> int main() { int a, b, c; double sum = 0.0; int res = 0; scanf("%d %d %d",&a,&b,&c); sum += (a * 2.5); sum += (b * 2.0); sum += (c * 0.5); res = sum+4.9; res *= 2; res /= 10; res *= 10; res -= (res % 10); printf("%d amperes",res); return 0; } | cs |
'개발노트 > 알고리즘' 카테고리의 다른 글
더블릿 알고리즘 : 섭씨 온도를 화씨 온도로 변환 CtoF (0) | 2015.12.01 |
---|---|
15 Sorting Algorithms in 6 Minutes (0) | 2015.06.16 |
- Total
- Today
- Yesterday
- 스레드
- C
- 파이썬
- 안드로이드
- 정렬
- 프로세스
- socket
- MFC
- 티그널
- 클래스
- 쓰레드
- 티라노 시그널
- 액터
- 소켓 프로그래밍
- 소켓
- 자료구조
- Sort
- C++
- 악보
- 리눅스
- 터미널
- 디렉터리
- C/C++
- 파이썬예제
- UML
- 클라이언트
- 파일
- 데이터베이스
- 라즈베리파이
- 유즈케이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |