#include <stdio.h> int num[4]={0}; int min_num(void); //시계수 찾기 int count(int min); //순서 찾기 int main(void) { int i, min, c; for(i=0; i<4; i++) scanf(" %d", &num[i]); min=min_num(); //printf("%d", min); c=count(min); printf("%d", c); return 0; } int min_num(void) { int i, j, min=10, a=4, result=0; for(i=0; i<4; i++) { if(min>num[i]) { a=i; min=num[i]; } else if(min==num[i]) { if(a==3) { if(num[0]>num[i+1]) a=i; } else if(i==3) { if(num[a+1]>num[0]) a=i; } else if(num[a+1]>num[i+1]) a=i; } } for(i=a; i<4; i++) { result=(result*10)+num[i]; } for(i=0; i<a; i++) { result=(result*10)+num[i]; } return result; } int count(int min) { int a=1111, c=1, s=2; while(1) { if(a==min) { return c; } if(a%10!=0) c++; if(a%1000==0) { a+=(s*100)+(s*10)+s; //printf("======== %d c=%d \n", a, c); } else if(a%100==0) { a+=(a/100); //printf("======== %d c=%d \n", a, c); } else if(a%10==0) { if((a/1000)==s) s++; a+=s; //printf("======== %d c=%d \n", a, c); } else { a++; } } }
2018.07.07 11:45
정올 - 문제은행 - 십자 카드 문제(1018) - Time Limit Exceed
조회 수 274 추천 수 0 댓글 0