알고리즘/브루트 포스(2)
-
[백준/C++] 2231번 분해합
문제: www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 문제풀이 모든 경우의 수를 비교하는 브루트 포스 문제이다. 입력값 N의 최소 생성자를 찾아내야 하는데 나는 1부터 N까지의 수 모두 N의 생성자가 될 수 있는지 여부를 확인해보는 코드를 작성했다. N % 10 과 N /= 10 연산을 이용해 분해합의 필요한 각 자릿수의 덧셈을 하였다. 코드 #include using namespace std; int main(){ ios::s..
2021.02.01 -
[백준/C++] 18111번 마인크래프트
문제: www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 문제풀이 모든 경우의 수를 비교하는 브루트 포스 문제이다. 먼저 땅의 높이 최솟값과 최댓값을 구한 뒤 땅을 최솟값으로 평탄화할 시의 시간부터 땅을 최댓값으로 평탄화할시의 시간까지 모두 비교하여 결과를 구했다. 만일 인벤토리가 0 미만이라면 물리적으로 평탄화가 불가능하기 때문에 continue() 함수로 패스한다. 코드 #include #include using namespace std; int main..
2021.01.30