목록Algorithm (35)
-
DP 기초. 인덱스 문제 때문에 한참을 헷갈렸다. 특별한 알고리즘 없이 결국에 왼쪽으로 가느냐 오른쪽으로 가느냐 이부분 인덱싱 처리만 잘해주면 된다. 인덱스 계산이 가장 짜증난다나에겐... 코드: #include using namespace std; int arr[125251];int D[125251]; int MAX(int a, int b){return a > b ? a : b;}int height(int a){int tmp = 0;int ret = 0;for (int i = 1; i N;for (int i = 1; i arr[i];}D[1] = arr[1];for (int i = 2; i
틀렸는데 대충 로직은 맞다. 다시 짜기 귀찮음 + 예시 한개 통과하면 다른 것에서 실패. 즉, 새롭게 짜야하는데 그러기 싫기에 먼 훗날 다시 보는것으로,. 코드: #include #include using namespace std;int arr[50];int main(){int N, M, cnt = 0;cin >> N >> M;deque dq;for (int i = 0; i > arr[i];}int k = 0; while (M--){ int index;for (int i = 0; i < N; i++){if (dq[i] == arr[k]){index = i + 1;break;}} if (arr..
제출한 코드가 맞긴 하지만 뭔가 찝찝하다. 무분별하게 STL을 가져다 쓴 듯하다. 코드:#include #include #include #include #include using namespace std; int main(){ //pair p1;//p1 = make_pair(10, 20);int T = 0;cin >> T;while (T--){int N, M,cnt=1;cin >> N >> M;queue Q;vector V(N);for (int i = 0; i > get;V[i] = get;pair p;p = make_pair(i, get);Q.push(p);}sort(V.begin(), V.end());int index = N-1;while (true){if (..
#include #include #include #include #include using namespace std;int VN, E, S;int V[1001][1001];bool BFS_visited[1001];bool DFS_visited[1001];void BFS(int x){queue Q;BFS_visited[x] = true;Q.push(x);while (!Q.empty()){int x = Q.front(); Q.pop();cout S;int r, c;for (int i = 0; i > r >> c; V[r][c] = 1;V[c][r] = 1;}DFS(S);cout
#include #include #include #include using namespace std; int main(){int T = 0;cin >> T;queue Q;while (T--){char cmd[10];cin >> cmd; if (!strcmp(cmd, "push")){int num;cin >> num;Q.push(num); }else if (!strcmp(cmd, "pop")){if (!Q.empty()){int tmp = Q.front();cout
#define _CRT_SECURE_NO_WARNINGS#include #include #include #include using namespace std; int main(){int T = 0;cin >> T; stack S;while (T--){string str = "";cin >> str;//scanf("%s",str); for (int i = 0; str[i]!='\0'; i++){if (str[0] == ')'){ S.push(str[0]);break;} if (str[i] != ')'||S.empty()) S.push(str[i]);else S.pop();} if (S.empty()) printf("YES\n");else printf("NO\n"); }system("pause"); retur..
틀린 코드? 왜틀렸는지 모르겠지만 틀렸다고 나온다. 예제입력시 잘 돌아가긴 한다. #define _CRT_SECURE_NO_WARNINGS#include #include #include #include #include using namespace std;bool flag[11];int main(){bool fs = false;int n;cin >> n;vector V(n);vector cmd(200000);vector tmp(n);stack S;for(int i = 0; i > V[i];}int j = 0;int k = 0;while (true){ for (int i = 1; i > n;vector V(n);vector cmd;stack S;for(int i = 0; i < n..
역시나 문자열 관련이 제일 짜증나고 싫다.. push 100 처럼 문자열안에서 숫자를 뽑아내야 하는데 처음에는 파싱하다가 cin 을 사용하면 띄어쓰기만큼 읽기 때문에 두번 사용하면 깔금하게 해결가능하다. #define _CRT_SECURE_NO_WARNINGS#include #include #include #include using namespace std; int main(){int n=0;stack S;cin >> n; string str; while (n--){//char str[100005];//gets(str);cin >> str;char tmp[10]; for (int i = 0; str[i] != 32; i++){if (!strcmp(str, "push")){int num;cin >> num..