브루트포스 5

[백준] 2839번: 설탕 배달 | C++ 풀이

# 문제 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. # 풀이 [한때는 이 문제가 "기본 수학 1" 단계에 있었지만, 사실 브루트 포스로 푸는 게 더 쉽습니다.]라고 한다. 브루트 포스로 풀어보자. 그럼 바로 정답 소스코드부터 확인! #include using namespace std; int main(){ int n; cin >> n; int cnt = 0; bool done = 0; while(n >= 0){ if(n%5 == 0){ cnt += n/5; done = 1; break; } n -= 3; cnt++; } if(!done) cout

백준/C++ 2023.06.30

[백준] 1436번: 영화감독 숌 | C++ 풀이

# 문제 숌이 만든 N번째 영화의 제목에 들어간 수를 출력하는 프로그램을 작성하시오. 숌은 이 시리즈를 항상 차례대로 만들고, 다른 영화는 만들지 않는다. # 풀이 이번에도 역시 브루트포스 문제다. 바로 정답 소스코드 확인! #include using namespace std; bool checkSixNum(int n); int main(){ int n; cin >> n; int numbering = 666; int series = 1; bool numCheck; if(n == 1) cout 0) { if (n%10 == 6) { cnt++; if (cnt == 3) return true; } else cnt = 0; n /= 10; } return false; } 종말의 수는 6이 적어도 3개 이상 연..

백준/C++ 2023.06.29

[백준] 1018번: 체스판 다시 칠하기 | C++ 풀이

# 문제 보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 당연히 8*8 크기는 아무데서나 골라도 된다. 지민이가 다시 칠해야 하는 정사각형의 최소 개수를 구하는 프로그램을 작성하시오. # 풀이 문제를 잘 읽자 100번 깜지 쓰겠습니다. 그냥 다시 색칠 보자마자 예전에 과제로 구현했던 코드 풀이랑 비슷할 것 같아 냅다 요상망측하게 구현하고 테스트 케이스 넣어보고 깨달았습니다. 8*8이라고요... 여러가지로 따져볼 게 있었던 브루트포스 문제다. 생각을 열심히 하면서 풀어보자. 바로 정답 소스코드부터 확인! #include #include using namespace std; // 비교할 체스판 문양 2개를 미리 s..

백준/C++ 2023.06.28

[백준] 2231번: 분해합 | C++ 풀이

# 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. # 풀이 이번에도 브루트포스 문제다. 모든 경우를 탐색한다고 생각하면 오히려 구현하기가 쉬우니 천천히 생각하며 풀어보자. 바로 정답 소스코드 확인! #include using namespace std; int decompositionSum(int n); int main(){ int n; cin >> n; int m = 1; bool print = 0; while(m < n){ if(n == decompositionSum(m)){ print = 1; cout 0){ sum += n%10; n /= 10; } return sum; } 분해합을 구해주는 decompositionSum함수를 먼저 살펴보자. int 타입을 반환하..

백준/C++ 2023.06.27

[백준] 2798번: 블랙잭 | C++ 풀이

# 문제 N장의 카드에 써져 있는 숫자가 주어졌을 때, M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구해 출력하시오. # 풀이 solved.ac 클래스 2에 속하고 백준 단계별 풀이로는 브루트 포스에 해당하는 문제! 정답 소스코드를 보며 필요한 개념을 정리해보자. 우선 브루트포스 알고리즘이란 완전탐색 알고리즘이다. 즉, 모든 경우의 수를 전수조사하여 정답을 찾아낸다. 어떻게 보면 가장 기본적이고도 핵심적인 방법이지만, 코드 수행시간이나 메모리 측면에서 효율이 떨어진다. 그래도 다른 효율적인 해결 방법을 알아보기 위해서라면 꼭 한번쯤 생각해보고 넘어가야 하는 단계! 바로 정답 소스코드를 확인해보자. #include using namespace std; int main(){ int n, m; c..

백준/C++ 2023.06.26
728x90