목록Algorithm (35)
-
Runtime Error Code #include #include using namespace std; #define MAX_NUM 10000000 #define MAX_Length 10000000 int main() { int N,Max=0; cin>>N; vector A(N+1); vector B(N+1); vector cnt(MAX_Length+1); vector cnt_sum(MAX_Length+1); //int a[N]; //int b[N]={0,}; for(int i=0; iA[i]; cnt[A[i]]++; } cnt_sum[0] = cnt[0]; for(int i=1; i= 1; i--) { B[cnt_sum[A[i]]] = A[i]; cnt_sum[A[i]]--; } for(int i=1; i
Run Time Error code #include using namespace std; void merge_sort(int a[],int S, int E);void merges(int a[],int S, int M, int E); int main(){ //int arr[1000000]={0,}; int *arr = new int[1000000]; int N=0; cin>>N; for(int i=0; i>arr[i]; merge_sort(arr,0,N-1); for(int i=0; i
시간복잡도 : O(n^2) 입력 n : 1 ~ 1000 #include #include using namespace std; int main(){int T=0,max = 0;cin >> T; vector V(T); for (int i = 0; i > V[i];} for (int i = 0; i < V.size(); i++){for (int j = i+1; j < V.size(); j++){if (V[i]
매우 어려운 규칙이 있을것이라 생각하고 삽질만 했다. 사실 loop 돌면서 조건에 따라 카운트만 해주면 되는것! 이 문제 또한 문제를 제대로 파악하지 못해 특정 조건을 캐치하지 못했다. 하지만 시관초과. 코드: #include "stdafx.h"#include using namespace std; int main(){int x, y, M, N,T=0;cin >> T; while (T--){int i = 1, j = 1,cnt=1;bool flag = false;cin >> M >> N >> x >> y; while (true){if (i == M && j == N) {break;}if (i > M) i = 1;if (j > N) j = 1;if (i == x && j == y){flag = true;br..
틀린 코드: 틀린 이유느 1123699 입력이 있으면 2가 나와야하는데 3이나온다. 이유는 아래 알고리즘에 따라 단순하게 같은 숫자가 나오거나 6과 9의 경우 cnt를 증가시켰기 때문이다. #include #include using namespace std; int main(){ int check_1=0; int n; int num=0,i=0,cnt=1; cin>>n; num = n; while(num>0) { num /= 10; i++; } int arr[i]; i=0; num = n; while(num>0) { arr[i++] = num%10; if(arr[i-1] == 6 || arr[i-1] == 9) { check_1++; if(check_1 %2 != 0 && check_1 > 2) { cnt..
코드: #include using namespace std;int arr[15][14];int main(){ int T; cin>>T; for(int i=0; i=0; i--) { for(int j=0; jk>>n; cout
코드 #include using namespace std; int main(){ int T; cin>>T; while(T--) { int H,W,N; int k = 1; int ans=0; bool flag = false; cin>>H>>W>>N; int arr[H][W]; for(int i=0; i
내가 생각한 접근 방법 while(T--) { int k = 1,tmp=0,cnt=0; int kn[3] = {0,}; cin>>x>>y; tmp = x + k; cnt += 1; while(tmp == y-1) { if(k==1) {kn[0] = 0; kn[1] = 1; kn[2] = 2;} else { kn[0] = k-1; kn[1] = k; kn[2] = k+1; } //Todo. } } 큰 숫자를 우선적으로 작동시키고 만약 Kn의 값 범위에서 진행하다가 Y-1 에 도달할 수 없을 경우 다시 되돌아가 K의 값을 차감하고 모든 경우를 탐색? 해보려 하였으나 여기서 더이상 진행시킬 엄두가 나지 않는다. 매운 더러운 스파게티 코드가 나올게 뻔하다. (물론 BF나 다른 방법으로도 풀 수 있을듯하나 아직 ..