반응형
https://www.acmicpc.net/problem/3135
brute force로 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
시작 주파수 a, 목표 주파수 b, 즐겨찾기 button개수 n, 정답 minMove를 선언한 후 적절히 입력받습니다.
📔 풀이과정
목표 주파수에 도달할 수 있는 방법은 무조건 존재합니다.
정답은 두 가지 중 최소입니다.
1. a -> b로 주파수를 1씩 증가 또는 감소시켜 도달
2. a -> 즐겨찾기 button중 하나눌러 특정 주파수 도달 -> b 로 도달
1.의 경우는 a-b번이 정답이 됩니다.
2.의 경우는 button - b + 1이 2번에 해당하는 방법을 사용했을 때 누른 최소 button 수입니다.
n만큼 for loop를 돌며 즐겨찾기 button정보를 입력받습니다.
이 중 2번을 수행해 최소값을 minMove에 저장해줍니다.
📔 정답출력
for loop가 끝난 후, 1번을 수행한 값과 minMove의 값중 최소를 비교해 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int a, b, n, minMove = 0x3f3f3f3f;
int main(){
cin >> a >> b >> n;
for(int i = 0, button; i < n; i++) {
cin >> button;
minMove = min(minMove, abs(button - b) + 1);
}
cout << min(minMove, abs(a-b));
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 1025 : 제곱수 찾기 (4) | 2022.04.05 |
---|---|
(C++) - 백준(BOJ) 14913 : 등차수열에서 항 번호 찾기 (0) | 2022.03.28 |
(C++) - 백준(BOJ) 2635 : 수 이어가기 (0) | 2022.03.15 |
(C++) - 백준(BOJ) 17618 : 신기한 수 (5) | 2022.03.07 |
(C++) - 백준(BOJ) 1531 : 투명 (2) | 2022.02.22 |