알고리즘/백준

[백준/c++] 3135번: 라디오

녕이 2022. 7. 12. 11:31
728x90

 

https://www.acmicpc.net/problem/3135

 

3135번: 라디오

첫 줄엔 정수 A와 B가 주어진다 (1 ≤ A, B < 1000, A ≠ B). 다음 줄엔 정수 N이 주어진다 (1 ≤ N ≤ 5). 다음 N개의 줄엔 미리 지정되어 있는 주파수가 주어진다 (주파수는 1000 보다 작다).

www.acmicpc.net

 

1. 주파수 1 MHz 증가

2. 주파수 1MHz 감소

3. 나머지 N개 버튼은 지정된 주파수로 이동

 

주파수 A와 N개 버튼 주파수 중 가장 B와 가까운 곳을 선택해서 closest에 넣어준다.

A가 아니라 N개 버튼 주파수라면 카운팅을 하나 해준다.

그리고, 반복문을 통해 + 혹은 - 를 진행해준다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main(){
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int a, b, n, ans=0;
    cin >> a >> b >> n;
    int closest = a;
    
    //가장 가까운 값 구하기
    for(int i=0; i<n; i++) {
        int bt;
        cin >> bt;
        if(abs(b-closest) > abs(b-bt)) closest = bt;
    }
    if(closest != a) ans++;
    
    while(1){
        if(b == closest) break;
        
        //감소 혹은 증가
        if(closest > b){ //B버튼
            closest--;
            ans++;
        }else{ //A버튼
            closest++;
            ans++;
        }
    }
    cout << ans << '\n';
    return 0;
}

 

 

 

 

728x90