브루트 포스(5)
-
[백준/BOJ] 백준 1018번 : 체스판 다시 칠하기
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 완전 탐색(브루트 포스)을 이용해 문제를 해결하였다. 주어진 보드에서 가능한 모든 8*8 형태의 보드를 구해 그중 다시 칠해야 하는 개수의 최솟값을 구했다. 체스판의 형태는 왼쪽 상단이 W이거나 B인 두 경우 뿐이라는 성질을 이용했다. 코드 #include #include #include #include using namespace std; int solve(vector board) { i..
2020.06.05 -
[백준/BOJ] 백준 7568번 : 덩치
https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩� www.acmicpc.net 완전 탐색(브루트 포스)을 이용해 문제를 해결했다. 정보를 입력받고, 각 사람마다 전체 사람들과 비교하여 자신보다 덩치가 큰사람의 수를 세어 자신의 등수를 계산했다. 코드 #include #include #include #include #include using namespace std; int main() { cin.tie(NULL); ios_base::sync_with_stdio(..
2020.06.03 -
[백준/BOJ] 백준 2231번 : 분해합
https://www.acmicpc.net/problem/2231 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+ www.acmicpc.net 완전 탐색(브루트 포스)을 통해 문제를 해결하였다. 문자열로 n을 입력받고 n의 가장 작은 생성자를 찾기 위해 0부터 n의 생성자가 맞는지 확인하였다. 코드 #include #include #include #include using namespace std; int solve(string n) { int ret = 987654321; //0부터 생성자를 찾는다. for (..
2020.06.03 -
[백준/BOJ] 백준 14501번 : 퇴사
https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 완전 탐색(브루트 포스)을 이용해 문제를 풀었다. 가능한 상담을 모두 탐색해, 최대 이익을 얻었다. 어떠한 상담을 하는데 그 일이 퇴사일 이상 끝날 때의 상담은 추가하지 않았지만, 정확히 퇴사일 전날 끝나는 상담이라면 추가하였다. 이러한 판단은 어떠한 상담을 하고 난 다음, 상담 가능한 최소 날짜를 만들어 구분하였는데, 만약 상담 A를 하고 난 뒤, 다음에 상담할 수 있는 최소 날짜가 정확히 퇴사일이라면, 상담 A를 끝나면 퇴사일 전날이라 가능하고, 최소 날짜가 그 이후라면 상담 A는 불가능하다. 코드 #include #include..
2020.06.03 -
[백준/BOJ] 백준 1065번 : 한수
https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 �� www.acmicpc.net 1부터 N까지 한수의 개수를 찾아내는 완전 탐색(브루트 포스) 문제이다. 1부터 N까지 한수인지 아닌지를 파악해 개수를 센다. 코드 #include #include using namespace std; bool check(string num) //한수인지를 체크한다. { bool ret = true; int num1; int num2; int num3; if (num.size() < 3)//두자..
2020.06.01