Problem Solving/Baekjoon

[백준] 3135 라디오 - Greedy / Java

graycode 2023. 4. 6. 10:44

 문제 링크

 

3135번: 라디오

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

www.acmicpc.net

 

 풀이 과정

현재 주파수와 목표 주파수의 차 - 1 을 버튼을 누르는 최소 횟수의 기본 값으로 지정한다.

이 후 입력받은 즐겨 찾기 주파수 값과 목표 주파수의 차를 구해 최소 값을 갱신하며,

마지막에 즐겨찾기 버튼을 누른 1회를 추가한 값을 정답으로써 출력한다.

 

 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        int n = Integer.parseInt(br.readLine());

        int min = Math.abs(a - b) - 1;
        while (n-- > 0)
            min = Math.min(min, Math.abs(Integer.parseInt(br.readLine()) - b));

        bw.write(String.valueOf(min + 1));
        bw.flush();
    }

}