본문 바로가기

IT/BOJ117

백준(BOJ) 2470번 두 용액 ** 일단 가장 단순하게 푼다면... 당연히 이러면 시간초과가 나겠죠?.... 왜냐 시간복잡도가 n^2나오니까.. 이 개념을 알고있는지를 물어보는 문제인 것 같습니다. #include #include #include #include #include #pragma warning(disable:4996) using namespace std; int s[1000005],mx,mi=1000000001,result[2]; int main() { scanf("%d", &mx); for (int i = 0; i < mx; i++) scanf("%d", &s[i]); for (int i = 0; i < mx; i++) for (int k = i + 1; k < mx; k++) if (abs(s[i] + s[k]) < mi).. 2018. 6. 1.
백준(BOJ) 10610 30 * 이게 왜 그리디 알고리즘에 들어가 있는지는 모르겠다. 그리디 알고리즘 보다는 수학적 개념이 필요할 것 같다. "모든 수들의 합이 3으로 나눠지면 3의 배수이다." 10만 자리의 숫자라는 점을 주의하자~ 즉, 입력을 숫자로 받는 멍충이는 되지말자~ #include #include #include #include #include #include #include #include #include #define MAX 40005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int sum = 0, len; char str[100005]; bool tf; priority_queue pq; int main() { scanf("%s".. 2018. 6. 1.
백준(BOJ) 4096 팰린드로미터 ** 팰린드롬 문제를 살짝 응용한 문제이다. 중간중간에 수 연산과정에 생기는 오류를 조심하자 팰린드롬을 간단하게 설명하면 숫자가 좌우 대칭인 숫자를 말한다. 예를들어 121 1221 10001등 좌우대칭인 수를 의미한다. #include #include #include #include #include #include #include #include #include #define MAX 100005 #define INF 987654321 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n; char str[10]; int fun(int cur) { int tmp=0; if(str[cur-1]>=str[strlen(str).. 2018. 6. 1.
백준(BOJ) 14502번 연구소 * 오랜만에 시작한 알고리즘 첫 문제~ 1. 배열의 크기가 작다보니 모든 3개의 벽을 놓는 모든 경우의 수를 확인 2. DFS를 이용하여 바이러스를 퍼지게 한다. 3. 안전한 공간의 개수를 확인한다. 실수 했던 부분 3개의 벽은 반드시 놓아야 한다. 즉, 바이러스가 없는 경우에도 3개의 벽은 놓아야한다.(80퍼 쯤에서 에러 발생) * : 기본적인 DFS 이고 모든 경우의 수를 확인 하면 된다는 점에서 쉽게 풀 수 있을것 같다. #include #include #include using namespace std; int map[10][10],ori[10][10],x,y,mx=0,tmp=0,dx[4] = { -1,0,1,0 },dy[4] = { 0,-1,0,1 }; void dfs(int y, int x) { .. 2018. 6. 1.