반응형

브루트포스 5

백준 1436번 영화감독 숌

백준 1436번 영화감독 숌 문제이다. 문제는 다음과 같다. 숫자 N이 주어지게 되면 N번째 666이 들어간 숫자를 찾으면 된다. 브루트포스 유형의 문제이기 때문에 숫자를 하나씩 모두 확인해주자 666이 가장 먼저 나오는 숫자는 666이기 때문에 666부터 시작하여 모든 숫자를 확인하고 666이 들어있다면 count를 1 씩 증가하여 입력값인 N과 같은 값이라면 해당 값을 출력하도록 만들어 주었다. 언어는 C++을 사용하여 프로그래밍 하였다. #include #include using namespace std; int main(){ std::ios_base::sync_with_stdio(false); int n; std::cin >> n; int a = 666; int count = 0; while(1)..

백준 1018번 체스판 다시 칠하기

백준 1018번 체스판 다시 칠하기 문제이다. 문제는 다음과 같다. M*N의 색깔이 칠해진 판이 주어지고 해당 판에서 8*8의 구간을 골라 체스판을 만드는데 체스판은 흰색과 검정색이 번갈아 나오는 체스판을 만들어야 한다. 가장 적게 칠해서 체스판을 만드는 경우 몇번만 칠하면 되는지를 구하는 문제이다. 브루트포스 유형의 문제이기 때문에 하나하나 확인해 보도록 한다. 체스판은 8*8의 크기이고 해당 크기로 주어진 판에서 자를 수 있는 모든 경우를 확인해보자 언어는 ruby를 사용하여 프로그래밍 하였다. def find1(arr, m, n) result = 64 for i in 0...m-7 for j in 0...n-7 count = 0 for k in 0...8 a = k % 2 for l in 0...8..

백준 7568번 덩치

백준 7568번 덩치 문제이다. 브루트포스 유형의 문제이다. 간단히 설명하면 각각의 사람의 입장에서 몸무게와 키가 모두 자기보다 큰 사람이 자기보다 덩치가 큰 사람이고 자기보다 덩치가 큰 사람의 수 + 1 한 값이 자신의 등수가 된다. 브루트포스 유형이므로 각각의 사람 입장에서 자기보다 덩치 큰 사람의 수를 구해 +1 한 값을 하나씩 출력하도록 코딩해보자 이번 문제는 java로 프로그래밍 했다. import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int[][] a = new int[n][2];..

백준 2231번 분해합

백준 2231번 분해합 문제이다. 브루트포스 유형의 문제이다. 분해합에 대한 설명이 주어졌다. 해당 숫자와 각 자리의 숫자를 모두 더한 값을 분해합이라 정의하고 있고 원하는 문제의 답은 분해합을 구하는 것이 아닌 해당 분해합을 가지는 가장 작은 숫자를 구하는 것이 문제이다. 역시 브루트포스 문제이기 때문에 하나하나 확인하면 될것이다. 0부터 해당 숫자까지의 숫자들을 하나하나 분해합을 구해 해당 숫자가 되면 멈추고 출력하도록 만들어 주었다. 코드는 python 언어를 사용하였다. def bunhehap(n): tmp = n i = 1 result = n while True: tmp = tmp // 10 if tmp == 0: break i += 1 for j in range(i): result += (n ..

백준 2798번 블랙잭

백준 2798번 블랙잭 문제이다. 브루트포스 유형의 문제이다. 문제는 다음과 같다. 주어진 카드 중에서 3장을 골라 주어진 M 값에 가깝도록 만들어 주어야 한다. 브루트포스 문제이기 때문에 하나하나 확인해서 M에 가까운 값을 찾으면 된다. for문 3개를 중첩해 모든 3개의 수를 고르는 경우의 수를 확인하여 합이 M에 가장 가까운 값을 찾도록 했다. 프로그래밍 언어는 C언어를 사용했다. #include #include int main(){ int n, m; scanf("%d %d", &n, &m); int* arr; arr = (int*)malloc(sizeof(int)*n); for(int i = 0; i < n; i++){ scanf("%d", arr + i); } int sum = 0; int ch..

반응형