Computer Science/Algorithm

    (C++) 백준 2798번 [블랙잭]

    안녕하세요 평범한컴공생입니다. 오늘은 백준 2798번 블랙잭 문제 알고리즘 포스팅을 해보겠습니다. 전형적인 브루트포스(완전탐색)문제로 모든 경우의 수를 탐색해주어 문제에서 원하는 값을 구해주면 됩니다. 1. 문제 해결 방법 구상하기 - 먼저 N과 M을 입력받고 N번만큼 반복문을 돌려 카드의 값들을 입력받는다. - M에 최대한 가까운 카드? >> 최솟값을 저장하는 변수 min 을 선언하고 각 조합마다 비교하여 더 작을 시 min에 대입하여준다. - 3장의 카드이므로 반복문을 3중으로 설계해서 돌리면 모든 조합의 수를 탐색할 수 있다. 2. 구상한 아이디어를 바탕으로 코딩하기 #include int main() { using namespace std; int N, M; cin >> N >> M; int ca..

    (C++) 백준 1475번 [방 번호]

    알고리즘 첫 게시물..! 이전부터 백준에서 문제를 풀어오긴 했지만 내가 문제를 해결할 때의 생각흐름과 이유 등을 글로 풀면 좀 더 논리적이고 체계적인 공부가 될 것 같아 알고리즘 문제도 포스팅을 해보려고 한다. 1. 문제 해결 방법 구상하기 - 일단 입력을 받을 때 배열로 입력을 받아야 한다. - 입력 받은 배열(즉 방번호)을 각 자리마다 어떤 숫자를 썼는 지 확인 후 그 숫자에 해당하는 int형 배열의 값을 +1 해준다.(크기가 10인 int 형 배열을 만들어 0~9 중 사용된 숫자의 배열에 +1해주기) - 이 문제에서 가장 핵심이 되는 아이디어이다. 이것 때문에 처음에는 정말 복잡하게 문제를 구상하고 풀이했는데 다시 생각해보니 9와 6을 한 숫자로 생각해주면 된다는 것이 이 문제의 핵심이다. 2. 구..