728x90
▶ BufferedReader와 브루트 포스 알고리즘을 활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
입력 & 출력
나의 풀이
전체 카드(N)중에서 3개를 고를 수 있는 모든 경우의 수를 구하고, 카드의 합을 구한 뒤, M을 넘지 않는 최댓값을 찾으면 되는 문제입니다.
주어지는 카드의 개수(N)가 최대 100개이므로, 브루트 포스 알고리즘을 사용하여 모든 가능한 조합을 탐색하는 것이 가능합니다.
따라서 3중 for문을 사용하면 손쉽게 풀 수 있는 브루트 포스 알고리즘의 첫 번째 문제였습니다.
풀이 설명을 하자면 빠른 입력을 위해 BufferedReader 클래스를 사용하고, 3중 for문을 사용하여 3개의 카드를 구하고 합을 구해줍니다.
해당 카드의 합의 max값을 구해주는 데 &연산자를 사용하여 M보다 작거나 같은 즉 근사치 값을 추가로 조건을 넣어서 최종 카드의 합 중에서 M보다 작은 최댓값을 구해주었습니다.
참고 ❗
'Coding Test > 백준' 카테고리의 다른 글
[백준] 분해합 (BufferedReader, 2231번, 브루트 포스, Java) (0) | 2024.05.24 |
---|---|
[백준] 달팽이는 올라가고싶다 (BufferedReader, StringTokenizer, Java) (0) | 2024.05.23 |
[백준] 다이얼 (BufferedReader, 5622번, charAt(), contains()) (0) | 2024.05.23 |
[백준] 벌집 (BufferedReader, 2292번) (0) | 2024.05.22 |
[백준] 소수 찾기 (BufferedReader, StringTokenizer, 1978번) (0) | 2024.05.21 |