▽문제 바로가기
https://codeup.kr/problem.php?id=3120
입력
현재 온도a 와 목표 온도b가 입력된다. ( 0 <= a , b <= 40 )
출력
최소한의 버튼 사용으로 목표온도가 되는 버튼의 횟수를 출력한다.
문제 풀이
1, 5, 10 단위로 작동하는 리모컨 기능이 있습니다. 절댓값을 구하여 간단하게 생각해봅시다.
입력의 최대는 40입니다. 계산해야 하는 값은 최대 십의 자리입니다. a-b의 절댓값에서 10으로 나눈 몫이 십의 자리를 맞추기 위한 +10 버튼 작동 횟수입니다.
다음은 일의 자리를 맞춰줍시다.
현재 0이라는 값을 가진다면
1이 되기 위해서는 +1(1회)
2가 되기 위해서는 +1, +1(2회)
3이 되기 위해서는 +1, +1, +1 또는 +5, -1, -1(3회)
4가 되기 위해서는 +5, -1(2회)
5가 되기 위해서는 +5(1회)
6이 되기 위해서는 +5, +1(2회)
7이 되기 위해서는 +5, +1, +1(3회)
8이 되기 위해서는 +10, -1, -1(3회)
9가 되기 위해서는 +10, -1(2회)
입니다.
#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
int a=0, b=0;
scanf("%d%d", &a, &b);
int result = 0;
result += abs(a-b)/10;
int c = abs(a-b)%10;
if(c==1||c==5) result+=1;
else if(c==2||c==4||c==6||c==9) result+=2;
else if(c==3||c==7||c==8) result+=3;
printf("%d", result);
return 0;
}
'알고리즘' 카테고리의 다른 글
[C/C++] 코드업(codeup) 3170번 기억력 테스트 9 (0) | 2020.01.27 |
---|---|
[C/C++] 코드업(codeup) 3703번 사탕 줍기 1 (0) | 2020.01.26 |
[C/C++] 코드업(codeup) 3007번 기억력 테스트 7 (0) | 2020.01.24 |
[C/C++] 코드업(codeup) 2640번 n의 k승 구하기 2 (0) | 2020.01.23 |
[C/C++] 코드업(codeup) 2631번 보물 찾기 (0) | 2020.01.21 |