반응형
문제 설명 내 문제집에 추가 내소스1
컴퓨터실에서 수업 중인 정보 선생님은 냉난방기의 온도를 조절하려고 한다.
냉난방기가 멀리 있어서 리모컨으로 조작하려고 하는데, 리모컨의 온도 조절 버튼은 다음과 같다.
1) 온도를 1도 올리는 버튼
2) 온도를 1도 내리는 버튼
3) 온도를 5도 올리는 버튼
4) 온도를 5도 내리는 버튼
5) 온도를 10도 올리는 버튼
6) 온도를 10도 내리는 버튼
이와 같이 총 6개의 버튼으로 목표 온도를 조절해야 한다.
현재 설정 온도와 변경하고자하는 목표 온도가 주어지면 이 버튼들을 이용하여 목표 온도로 변경하고자 한다.
이 때 버튼 누름의 최소 횟수를 구하시오.
예를 들어, 7도에서 34도로 변경하는 경우,
7 -> 17 -> 27 -> 32 -> 33 -> 34
이렇게 총 5번 누르면 된다.
입력
현재 온도a 와 목표 온도b가 입력된다. ( 0 <= a , b <= 40 )
출력
최소한의 버튼 사용으로 목표온도가 되는 버튼의 횟수를 출력한다.
입력 예시 예시 복사
7 34
출력 예시
5
#include <iostream>
using namespace std;
int cnt;
void recv(int lev, int nowt, int goalt)
{
if (cnt < lev || nowt < 0 || nowt > 40)
return ;
if (nowt == goalt)
{
if (cnt > lev)
cnt = lev;
return ;
}
recv(lev + 1, nowt - 10, goalt);
recv(lev + 1, nowt + 10, goalt);
recv(lev + 1, nowt - 5, goalt);
recv(lev + 1, nowt + 5, goalt);
recv(lev + 1, nowt - 1, goalt);
recv(lev + 1, nowt + 1, goalt);
}
int main(void)
{
int nowt, goalt;
cin >> nowt >> goalt;
cnt = 40;
recv(0, nowt, goalt);
cout << cnt;
}
ㅏ리모콘 온도 ㅏㄹㄹ
목표온도랑 현재온도가 0~40 까지니까 범위 벗어나면 return
그리고 최소 횟수를 재는 거니까 lev이 더 커지면 return하도록 함
반응형
'C언어' 카테고리의 다른 글
백준 11726 2*n 타일링 ( 시간 지나고 또 품) (0) | 2021.01.23 |
---|---|
백준 1149 rgb 거리 (0) | 2021.01.22 |
codeup코드업 2608 동아리 회장 선거 (0) | 2021.01.20 |
코드업 codeup 4033 네모네모 로직 (0) | 2021.01.20 |
codeup 2652 영화관 문제 2 (0) | 2021.01.18 |
Codeup 코드업 2651: 극장좌석배치1 (0) | 2021.01.18 |
2605 codeup문제 캔디팡 floodfill문제 (0) | 2021.01.10 |
깃헙도 HALLOWEEN!! (0) | 2020.10.31 |