본문 바로가기

브루트포스8

[백준 2503] 숫자 야구 www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 예전에 많이 하던 숫자 야구 구현이다. 숫자가 3개밖에 없기 때문에 브루트포스를 사용하지만 그 구현방법이 어려웠다. 문제 조건이 1~9까지의 숫자 사용. 각 자리수는 서로 다른 숫자이기 때문에 123~999 사이에서 1. 0 이 들어가거나 2. 자리수가 같은 경우가 있는 경우는 배제하고 시작한다. 그 후에 strike와 ball수를 체크해서 모든 조건을 통과하는 숫자들의 경우의 수를 리턴한다. 따라서 처음에 모.. 2020. 11. 26.
[백준 16945] 매직 스퀘어로 변경하기 www.acmicpc.net/problem/16945 16945번: 매직 스퀘어로 변경하기 1부터 N2까지의 수가 하나씩 채워져 있는 크기가 N×N인 배열이 있고, 이 배열의 모든 행, 열, 길이가 N인 대각선의 합이 모두 같을 때, 매직 스퀘어라고 한다. 크기가 3×3인 배열 A가 주어졌을 때, www.acmicpc.net 처음 봤을 땐 무슨 문젠가 싶지만 3 * 3 칸만 채우면 되므로 브루트포스 - 백트래킹을 사용하면 된다. 사각형을 모든 경우의 수로 채우는 백트래킹을 사용한다. cnt는 3 * 3칸 내에서 칸의 위치를 의미한다. 스퀘어를 1~9로 채우고 난 후 매직스퀘어 조건에 충족한다면 -> 원래 스퀘어와의 차이를 계산 -> 최솟값을 리턴 매직 스퀘어 조건은 가로 세로 대각선의 합이 모두 같은 것.. 2020. 11. 23.
[백준 15779] Zigzag www.acmicpc.net/problem/15779 15779번: Zigzag 어떤 수열에서, 연속된 3개의 수를 보았을 때, 그 수가 단조증가 수열이거나, 단조감소 수열인 경우가 없으면 이 수열을 "지그재그 수열" 이라고 말한다. 좀 더 정확하게는, 길이 N의 수열 A가 모 www.acmicpc.net n이 5000까지이므로 브루트 포스 수열 안에 모든 숫자를 3개씩 확인해본다. 만약 지그재그 수열에 해당한다면 1씩 길이를 늘려주고 max값을 업데이트해준다. 지그재그 수열이 깨지면 다시 최소 지그재그 수열길이인 2부터 시작한다. #include #include using namespace std; int arr[5000]; int main(void) { int n; scanf("%d", &n); fo.. 2020. 11. 23.
[백준 16987] 계란으로 계란치기 www.acmicpc.net/problem/16987 16987번: 계란으로 계란치기 원래 프로그래머의 기본 소양은 팔굽혀펴기를 단 한 개도 할 수 없는 것이라고 하지만 인범이는 3대 500을 넘기는 몇 안되는 프로그래머 중 한 명이다. 인범이는 BOJ에서 틀린 제출을 할 때마다 턱 www.acmicpc.net n의 범위가 1부터 8까지이기 때문에 브루트 포스 & 백트래킹을 하면 풀리는 문제이다. 주의할 점: hand== n인 기저조건까지 도달하기 위해 모든 조건에서 backtracking함수를 실행시켜야 한다는 것이다. ' ++괜히 경우의 수를 출력한다고 했다가 너무 많은 경우의 수라서 무한 루프 도는 것처럼 보였다... #include #include #define MAX 8 //n=8이기 때문에 다.. 2020. 11. 12.