브루트포스 알고리즘 4

백준 2422 한윤정이 이탈리아에 가서 아이스크림을 사먹는데(c++)

https://www.acmicpc.net/problem/2422 2422번: 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 첫째 줄에 정수 N과 M이 주어진다. N은 아이스크림 종류의 수이고, M은 섞어먹으면 안 되는 조합의 개수이다. 아래 M개의 줄에는 섞어먹으면 안 되는 조합의 번호가 주어진다. 같은 조합은 두 번 www.acmicpc.net 주어지는 입력값은 아이스크림의 종류와 조합해서 안 되는 아이스크림의 종류 개수입니다. 예시를 들어 조합해서는 안 되는 아이스크림이 1번, 3번이면 check[3][1], check[1][3]을 true로 바꿔줘야 합니다. 왜냐하면 1번, 3번이나 3번, 1번이나 같은 의미이기 때문입니다. 만약 검사를 하고 check변수가 false이면 개수를 하나씩 늘려주면 ..

백준 16943 숫자 재배치(c++)

https://www.acmicpc.net/problem/16943 16943번: 숫자 재배치 두 정수 A와 B가 있을 때, A에 포함된 숫자의 순서를 섞어서 새로운 수 C를 만들려고 한다. 즉, C는 A의 순열 중 하나가 되어야 한다. 가능한 C 중에서 B보다 작으면서, 가장 큰 값을 구해보자. C는 0 www.acmicpc.net 이 문제는 c++에 내장되어 있는 next_permutation을 사용하면 간단하게 풀 수 있는 문제입니다. A, B를 입력받고, A의 순서를 뒤바꿔서 C보다 작은 최대 수를 구하는 문제입니다. 우선적으로 A를 문자열로 입력받습니다. 그리고 next_permutation을 이용하여 순열을 하나씩 구하고 stoi함수를 통해 숫자로 파싱 시켜주고 B와 비교해서 작으면 값을 지속..

백준 16924 십자가 찾기(c++)

https://www.acmicpc.net/problem/16924 16924번: 십자가 찾기 십자가는 가운데에 '*'가 있고, 상하좌우 방향으로 모두 같은 길이의 '*'가 있는 모양이다. 십자가의 크기는 가운데를 중심으로 상하좌우 방향으로 있는 '*'의 개수이다. 십자가의 크기는 1보다 크 www.acmicpc.net 이 문제는 해당 격자판에서 다음과 같은 십자가를 몇 개 만들 수 있는지 물어보는 문제입니다. 해당 인덱스에서 상하좌우 비교해서 *가 된다면 해당 부분과 크기를 push 해주면 되는 간단한 문제지면 예외의 경우가 존재합니다. 예외 케이스 * *** * * 다음과 같은 부분은 제일 아래쪽 *이 크기가 1인 십자가에 속하지 않기에, -1을 출력 해줘야 합니다. 이러한 경우를 방지하기 위해 ch..

백준 16936 나3곱2(c++)

https://www.acmicpc.net/problem/16936 16936번: 나3곱2 나3곱2 게임은 정수 하나를 이용한다. 가장 먼저, 정수 x로 시작하고, 연산을 N-1번 적용한다. 적용할 수 있는 연산은 두 가지 있고, 아래와 같다. 나3: x를 3으로 나눈다. x는 3으로 나누어 떨어져야 www.acmicpc.net 이 문제는 곱2, 나3이 섞인 수열이 존재하면, 순서에 맞는 수열을 찾는 문제입니다. 여기에서 핵심은 각 수를 소인수분해 했을 때, 3의 인수가 가장 많은 수가 제일 앞에 와야 합니다. 왜냐하면, 인수가 3이 많게 되면, 그다음 수도 자연스럽게 3으로 나누어 떨어지기 때문입니다. 그리고 3의 인수가 동일하다면 오름차순 정렬해주면 됩니다. (3의 인수가 동일한 경우에는 곱하기 2를..