본문 바로가기

알고리즘76

백준(BOJ) 14889 스타트와 링크 * # DFS # 브루트 포스 n이 작아서 완전 탐색으로 모든 경우 훑어도 됩니다. #include #include #include #include #include #include #include #include #include #define MAX 55 #define INF 2123456789 using namespace std; typedef long long ll; int n,mi=INF,val[MAX][MAX]; bool a[MAX]; // dfs를 이용하여 팀의 조합을 탐색한다. void dfs(int cur,int cnt){ if(cnt==n/2) { int suma=0,sumb=0; // 팀이 완성되었을때 a팀과 b팀의 합을 구해 차이를 구해준다. for(int i=1;i 2019. 3. 22.
백준(BOJ) 16189 Repetitive Palindrome * # 단순 구현 지문을 읽어보면 반복시키면 뭔가 반례가 나올 것 처럼 되어있지만, 결국 펠린드롬인 문장을 반복시켜야 펠린드롬이 된다. -> 주어진 문장 펠린드롬인지 검사하면 된다. #include #include #include #include #include using namespace std; char str[250005]; long long n; bool find() { int len = strlen(str); for (int i = 0; i < len/2; i++) { if (str[i] != str[len - i-1]) return false; } return true; } int main() { scanf("%s%lld", str, &n); if (find()) printf("YES"); els.. 2018. 10. 7.
백준(BOJ) 16174 점프왕 젤리 ** # BFS # 스까묵자 #include #include #include #include #include #include using namespace std; long long ans; typedef pair pa; int n, arr[100][100], che[100][100]; int main() { scanf("%d", &n); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { scanf("%d", arr[i] + j); } } deque dq; dq.push_back({ 0, 0 }); while (!dq.empty()) { pa now = dq.front(); dq.pop_front(); che[now.first][now.second] = .. 2018. 10. 4.
백준(BOJ) 16172 나는 친구가 적다 ** # kmp 단순한 kmpㅎㅎ #include #include #include #include #include #include using namespace std; #define MAX 1000005 char a[MAX], b[MAX], c[MAX]; int p[MAX]; int main() { scanf("%s", a); scanf("%s", c); int idx = 0; for (int i = 0; i < strlen(a); i++) { if ('0' 0 && b[i] != c[j]) { j = p[j - 1]; } if (b[i] == c[j]) { if (j == strlen(c) - 1) { printf("1"); return 0; } else { j++; } } } printf("0"); ret.. 2018. 10. 4.