브루트포스 55

백준 2508번 사탕 박사 고창영 C++

https://www.acmicpc.net/problem/2508 2508번: 사탕 박사 고창영 창영이가 드디어 취직을 했다!! 그가 30세까지 취직을 안하던 이유는 바로 마음에 다니는 직장을 찾지 못해서였다. 이번에 창영이가 취직한 곳은 사탕 공장이다. 사탕 공장에 다니면 사탕 처럼 www.acmicpc.net #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int dRow[4] = { -1,0,1,0 }; int ..

알고리즘 2023.05.04

백준 1411번 비슷한 단어 C++

https://www.acmicpc.net/problem/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복 www.acmicpc.net 문자열끼리 하나씩 전부 검사한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n; ve..

알고리즘 2023.03.05

백준 3980번 선발 명단 C++

https://www.acmicpc.net/problem/3980 3980번: 선발 명단 각각의 테스트 케이스에 대해서, 모든 포지션의 선수를 채웠을 때, 능력치의 합의 최댓값을 한 줄에 하나씩 출력한다. 항상 하나 이상의 올바른 라인업을 만들 수 있다. www.acmicpc.net 백트래킹, 능력치가 0이면 배치할 수 없다는 것이 핵심 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; vector abilities; ..

알고리즘 2023.01.03

백준 16924번 십자가 찾기 C++

https://www.acmicpc.net/problem/16924 16924번: 십자가 찾기 십자가는 가운데에 '*'가 있고, 상하좌우 방향으로 모두 같은 길이의 '*'가 있는 모양이다. 십자가의 크기는 가운데를 중심으로 상하좌우 방향으로 있는 '*'의 개수이다. 십자가의 크기는 1보다 크 www.acmicpc.net 모든 격자판을 탐색하면서 *을 만나면 4방향으로 탐색해서 4방향중 가장 작은 거리가 그 *에서 그릴 수 있는 가장 큰 십자가이다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include u..

알고리즘 2022.12.22

백준 2992번 크면서 작은 수 C++

https://www.acmicpc.net/problem/2992 2992번: 크면서 작은 수 정수 X가 주어졌을 때, X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다. 수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다. 예를 들어, 123과 321은 수의 구성이 www.acmicpc.net 백트래킹을 이용해서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; s..

알고리즘 2022.12.04

백준 12919번 A와 B 2 C++

https://www.acmicpc.net/problem/12919 12919번: A와 B 2 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈 www.acmicpc.net s에서 t로 한단계씩 바꾸는 것은 시간초과가 날 수 있기 때문에 거꾸로 t에서 s로 조건에 맞을때만 바꾸는 식으로 풀었다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #incl..

알고리즘 2022.11.13

백준 10974번 모든 순열 C++

https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 백트래킹 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n; vector ans; vector visited; void BT(int size) { if (size >= n) { for (au..

알고리즘 2022.10.11

백준 17135번 캐슬 디펜스 C++

문제에 나와있는대로 구현을 하면 되는데 구현 난이도가 은근 높았다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n, m, d; int Cnt = 0; int ans = 0; struct Pos { int row; int col; bool operator==(const Pos& other) const{ if (row == other.row && col == other.col) return t..

알고리즘 2022.09.18

백준 16637번 괄호 추가하기 C++

괄호를 넣을 수 있는 가능한 모든 경우들을 검사하면서 가장 큰 값을 찾았다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n; string str; vector compBits; enum Operator { Add, Sub, Mul, }; map oper; int ans = INT_MIN; void Solve(int bit, int cnt) { if (cnt >= n / 2 + 1) { in..

알고리즘 2022.08.23

백준 1062번 가르침 C++

백트래킹으로 k개의 글자를 가르치는 경우를 전부 확인해보면 시간초과가 난다. 남극언어는 anta로 시작하고 tica로 끝난다고 했기 때문에 a,c,i,n,t는 무조건 배워야 한다. 그래서 저 글자들은 처음에 배웠다고 가정하고 시작한다. 그러면 글자를 가르치는 경우가 26Ck 에서 21Ck로 줄어서 통과된다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n, k; vector strs; vector v(26)..

알고리즘 2022.08.17