기타등등 79

[C++] 삽입정렬 - Least Recently Used(카카오캐시 변형)

삽입정렬 : 이전 값들과 비교하여 한 칸씩 뒤로 옮기고 삽입한다. #include int main() { int S,N,i,j,tmp,idx; int cnt[100]; scanf("%d %d",&S,&N); int mem[S]; mem[0] = 0; for(i = 0; i = 0; j--){ if(tmp == mem[j]) mem[j] = mem[j-1]; else mem[j+1] = mem[j]; } }else printf("!"); mem[0] = tmp; } for(i = 0; i < S; i++){ printf("%d",mem[i]); } return 0; } 삽입정렬의 특성을 이용하였다. ..

[C++] 연속부분 증가수열

내 코드 #include //한번에 풀었음 채점해보기 int main() { int N, num, res = 0, cnt=0, max = -2147000000; scanf("%d",&N); for(int i = 1; i = max){ max = num; cnt++; }else { max = num; cnt = 1; } printf("cnt : %d \n",cnt); if(cnt > res) res = cnt; } printf("%d",res); return 0; } 채점은 안해보았으나 무리는 없어보인다. 지금까지 배웠던 가장 기초적인 방법으로 해결해보았다. 하지만 나열된 정수들이 있다고 했을 때, 서로 인접한 값들에 대한 비교를 해야할 때 응용할 수 있는 또 다른 솔루션이 있다. 효율적인 답 int ma..

[C++]카드게임

#include //각자 공개할때마다 라운드 증가 10개의 카드(10라운드) //숫자가 더 큰 사람이 이김 비기면 D //이기면 3점 패자 0점 동점 1점 //총점이 같으면 마지막라운드에서 이긴 사람 //모든 라운드에서 비기면 비김 int main() { int A[10],B[10]; int AP = 0 ,BP = 0,i; int rw = 0; //round winer를 체크하여 마지막에 누가 이겼는지를 알도록 함 //이게 핵심 for(i = 0; i < 10; i++){ scanf("%d",&A[i]); } for(i = 0; i < 10; i++){ scanf("%d",&B[i]); } for(i = 0; i < 10; i++){ if(A[i] == B[i]){ AP+=1; BP+=1; } else ..

[C++]층간소음

처음에 짠 코드 #include using namespace std; int main() { //예를들어, 10초동안 체크하는 경보기 = for문 10번 돌린다. //연속으로 M이상인 경우 = counting int N,M,i,num, res,max = -2147000000; int cnt[100]; cin >> N >> M; cnt[0] = 0; for(i = 1; i > num; if(num > M){ cnt[i] = cnt[i-1] + 1; }else { cnt[i] = 0; } } for(i = 1; i max){ max = cnt[i]; } } cout > N >> M; for(i = 1; i > num; if (num > M) cnt++; else cnt = 0; if(cnt > max) ma..