본문 바로가기

C

PKU 2719. Faulty Odometer. AC get... a(n,k,nn,sum1,sum2){if(n 더보기
PKU 1298. The hardest problem ever. AC get -_- #include #include int main() { char start[256], temp[256]; int i; while(gets(start)) { if (!strcmp(start, "ENDOFINPUT")) { break; } gets(temp); for (i = 0; i 'E' && temp[i] 더보기
PKU 3030. Nasty Hacks. AC Get -_-.. #include using namespace std; int main() { int N, RespectNot, Respect, AdvPay; cin >> N; while(N--) { cin >> RespectNot >> Respect >> AdvPay; if((Respect - RespectNot) > AdvPay) { cout 더보기
PKU 2521. How much did the businessman lose. AC get~ main(N,M,P){for(;scanf("%d%d%d%*d",&N,&M,&P),N;printf("%d\n",N-M+P));} 낄낄. 전에 지군 앞에서 숏코딩 보여줬던 문제였는데 이걸 번역하다니 -_-a 더보기
PKU 2636. 전기콘센트(?) AC get~-_- #include using namespace std; int main() { int N, K, sum, s; cin >> N; while(N--) { cin >> K; sum = 0; while (K--) { cin >> s; sum += s; sum--; } cout 더보기
미로찾기 10X10의 미로에서 01부터 100까지 가는 복수의 이동경로가 있을 경우 이동은 북, 동, 남, 서 순으로 한다. 방 번호 (입구)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 (출구)100 입력 10행 10열의 1 또는 0의 값이 주어진다... 더보기
구글입사문제 풀기 "최고인재 가치는 평균적 인력의 300배" 이 기사에 구글 입사문제가 소개되어있습니다. 풀어보죠 양수 n에 대해서 1과 n 사이에 1이 나오는 횟수를 나타내는 함수를 f(n)이라고 한다. 예를 들어 f(13)=6이다. f(n)=n이 되는 첫번째 양수는 1이다. 두번째 양수는 무엇인가. f(1)=1 1 f(2)=1 1,2 f(11)=4 1,2,3,4,5,6,7,8,9,10,11 쉬워요 쉬워. #include void main() { int i, j, k, tmp, cnt=0; for(i=1; ; i++) { tmp=i; while(tmp) { if(tmp%10==1) cnt++; tmp/=10; } if(cnt==i) printf("%d ",i); } } 중학교 1학년 과정을 별 탈없이 진행하셨으면 전개식.. 더보기
환형 링크드리스트 원형 큐와 비슷합니다. //지금 포토샵이 안켜져서...... tail이 없다는 것 빼곤 링크드리스트와 같습니다. 선언 typedef struct _ { int val; struct _ *next; }node; 함수들 void init(int n)//0부터 n까지의 노드생성 { int i; node *p; p=(node*)malloc(sizeof(node)); p->val=0; head=p; for(i=1;inext=(node*)malloc(sizeof(node)); p=p->next; p->val=i; } p->next=head; } void delete_node(node *o)//다음의 노드를 삭제 { node *p; p=o->next; o->next=p->next; free(p); } 환영 링크드리스.. 더보기
PKU 1844, Sum. AC #include int i,in,sum; int main() { do { scanf("%d",&in); }while(in100000); for(i=sum=0;;i++) { sum+=i; if(sum>=in && (sum-in)%2==0) { printf("%d\n",i); break; } } } Run ID User Problem Result Memory Time Language Code Length Submit Time 4114901 jht009 1844 Accepted 204K 0MS C 296B 2008-09-23 15:25:49 매트릭스 포기해도 되나요???????????????????????????????? 헣헣헣 GG 더보기
PKU 1844. Sum. AC get!~ #include int main() { int i, j, sum = 0; scanf("%d", &i); for (j = 1; j = i) { if (!((sum - i) % 2)) { printf("%d\n", j); break; } } } return 0; } 흐음. 이번에도 쉬운 문제이지요? 1부터 N까지 숫자를 나열해 두고, 각 숫자마다 부호를 아무렇게나 둔 다음, 부호까지 붙인 수들을 합해서 S가 되게 만들되, 그 N중 최소를 출력하는 겁니다. 제 솔루션은 간단합니다. 1부터 N까지의 합을 그냥 구합니다. -_-; 이 때 1부터 N까지의 합이 S보다 크다면, S는 1부터 N까지의 숫자중 몇개를 뽑아서 만들 수 있.. 더보기
PKU 3685. Matrix. AC get! #include #include int main() { int n; __int64 N, M; __int64 min, max; __int64 x, j; __int64 sum; __int64 det, cal_1, cal_2; const __int64 w = 100000; scanf("%d", &n); while (n--) { scanf("%I64d%I64d", &N, &M); max = w * w * 10; min = -1 * max; while (min < max) { x = (min + max) / 2; if (x == max) { x--; } sum = 0; for (j = 1 ;(j = cal_1) { sum += (cal_2 - cal_1 + 1); } } if (sum < M) { min = x .. 더보기
PKU 2017, Speed Limit. AC #include int n,s,h2,h1; int arr[10],i,j; int main() { while(1) { scanf("%d",&n); if(n==-1)break; for(i=0;i 더보기
PKU 2017, Speed Limit. AC get! #include int n,s,t1,t2,sum; int main() { while(scanf("%d",&n)) { if(n == -1) break; while(n--) { scanf("%d%d", &s, &t2); sum += s * (t2 - t1); t1 = t2; } printf("%d miles\n", sum); sum = 0; t1 = 0; } return 0; } 이번 문제도 좀 쉽나... 더보기
PKU 2027. No Brainer. AC get~-_- - 101Byte #define s(x) scanf("%d",&x) main(x,y,n){for(s(n);n--;s(x)&s(y)&puts(x 더보기
PKU 2027. No Brainer. AC get!~ 91Byte. main(x,y,n){for(scanf("%d",&n);n--;puts(x 더보기
동적 배열할당 메모리를 아끼기 위해선 배열을 동적으로 생성해야합니다. 뭐 다 아시겠지만 1차원배열 동적할당 #include #include main() { int n; int *arr; int i; printf("몇개? "); scanf("%d",&n); arr=(int *)malloc(sizeof(int)*n); for(i=0;i 더보기
Tackle to Mr.K's Solution.(PKU 1145) #include #include #define SIZE 300 typedef enum storeType { NONE, NUMBER, LETTER, BRANCH, LEAF } storeType; typedef struct { int nPart; char cPart; storeType status; } card; /* status의 내용을 바꿔주는 것만으로 int형과 char형을 자유자재로 다룰 수 있어서 앞·뒤 뒤집는게 쉬운 card에 비유, 디버깅이 불편하다는 것이 단점 */ void main() { int searchKey; char inputStr[ SIZE ]; card adjusted[ SIZE ]; card stack[ SIZE ]; card temp[ SIZE ]; int compare = 0.. 더보기
UVa. 112, PKU 1145. Tree Summing. AC get! main() { int st[10000], len, i, sum, lev, cp, f; char temp; while (scanf("%d", &len) != -1) { lev = 0; sum = 0; f = 0; while (1) { while ((temp = getchar()) != '(') { if (temp == ')') { f++; if (f == 4) { if (sum == len) { cp = 1; } } sum -= st[lev--]; if (!lev) { goto a; } } } lev++; f++; if (scanf("%d", &i)) { st[lev] = i; sum += i; f = 0; continue; } else { st[lev] = 0; while (getchar() != ').. 더보기
프로그래머들의 지적 유희? 장난? 직장 상사에게 혼나는 법? main(n){gets(&n);putchar(n%85+5);} 하암... 비주얼 스튜디오 6.0, 혹은 gcc나 ANSI C 표준을 따르는 컴파일러에서 작동하는 코드입니다. (비주얼 스튜디오 닷넷은 ANSI C 표준이 아닙니다.) 아 참, 저게 뭐하는 거냐구요? ....... 두 개의 한자리 양의 정수를 입력받아 합을 출력하는 프로그램 입니다. ....... 직장 상사한테 뺨때기 한대 맞기 딱 좋죠? 것도 합이 두 자리 수가 되면 답이 안나와요. -_-; 두 자리 수가 될 경우 나오게 하는 방법이 있긴 하지요. printf를 활용 하되, 좀 색다른 방법을 써야 합니다. .... 저 코드가 어떻게 돌아가느냐구요? ....... C언어 표준을 따르니 돌아가지요 뭐 -_-; #include 를 빼도 gets와.. 더보기
프로그래밍의 이해 - C언어와 함께하는 Hello World!? #include void main() { printf("Hello World!\n"); } 이전 포스트보다 좀 더 간단한 예제. Hello World! 혹은 Hello C! 라고 불리우는 예제입니다. 이번에 새로 나온건 '\n'. 그리고 전에는 printf() 내부에 "" 이후 콤마로 구분해 출력 형식에 집어넣을 변수가 있었는데 이번엔 사라졌지요? printf()함수의 특성은 ()안에 인자(함수 구동시 사용하는 인풋)의 갯수가 무한대라는 것입니다. 최소 1개(""로 쌓인 출력할 문장), 최대 무한대. 뭐... 사실 최대 갯수가 정해져 있긴 하지만, 그걸 다 넣을 정도라면 차라리 여러 줄로 나눠 쓰는게 보기에도 편하고 쓰기에도 편하답니다. printf() 내부에 이번엔 "Hello World!\n"만 들어.. 더보기