728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫 줄엔 정수 A와 B가 주어진다 (1 ≤ A, B < 1000, A ≠ B).
다음 줄엔 정수 N이 주어진다 (1 ≤ N ≤ 5).
다음 N개의 줄엔 미리 지정되어 있는 주파수가 주어진다 (주파수는 1000 보다 작다).
출력
주파수 A에서 B로 갈 때 눌러야 하는 버튼수의 최솟값을 출력한다.
소스코드
#include <iostream> #include <math.h> using namespace std; int main(void) { int min = 1000, tmp, a, b, n; cin >> a >> b >> n; for (int i = 0; i < n; i++) { cin >> tmp; if (abs(b - tmp) < min) min = abs(b - tmp); } tmp = min; min = (tmp + 1) < abs(b - a) ? (tmp + 1) : abs(b - a); cout << min; }
Tip
수학적으로 계산만 해주면 된다. 단순 크기 비교만 잘 해주면 되는 부분.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 13458 - 시험 감독 (0) | 2018.01.03 |
---|---|
백준] 1350 - 진짜 공간 (0) | 2018.01.01 |
백준] 9437 - 사라진 페이지 찾기(ACM-ICPC Regional) (0) | 2017.12.27 |
백준] 5426 - 비밀 편지(ACM-ICPC Reginoal) (0) | 2017.12.26 |
백준] 6321 - IBM 빼기 1(ACM-ICPC Regional) (0) | 2017.12.24 |