Algorithm/백준 알고리즘
백준_2502 떡 먹는 호랑이(자바) / 브루드 포스
미스터로즈
2021. 5. 7. 08:26
시간 & 메모리 제한
문제
입력 & 출력
브루드 포스를 이용한 문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Back_2502 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int D = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int[] arr= new int[D];
for (int i = 1; i <= K/2; i++) {
for (int j = i+1; j < K; j++) {
arr[0]=i;
arr[1]=j;
for (int k = 2; k < D; k++) {
arr[k]=arr[k-1]+arr[k-2];
}
if(arr[D-1]==K) {
System.out.println(arr[0]);
System.out.println(arr[1]);
System.exit(0);
}
}
}
}
}
- 브루트 포스를 이용해서 문제를 풀었습니다.
- 일단 값을 받아왔고, 이중 for문을 통해서 a와 b의 값을 정해줬습니다.
- 이때, a의 경우 최대 값을 K/2라고 잡았습니다. 예제와 같이 41이라면 a 가 최대가 20 이라면 b의 경우는 21이 됩니다.
즉, a의 범위를 절반만 잡아도 충분히 결과를 얻을 수 있습니다.
- 값을 찾으면 출력을 해주고 바로 종료를 시켜줍니다.