암스트롱수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include <stdio.h> int main(){ int n,m,i,copy,sum; scanf("%d %d",&n,&m); for(i=n; i<=m; i++){ copy=i; sum=0; while(copy>0){ sum+=(copy%10)*(copy%10)*(copy%10); copy= copy/10; } if(sum==i) printf("%d ",i); } return 0; } | cs |
최단거리
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> #include <stdlib.h> int main(){ int n,*arr,min,i; scanf("%d",&n); arr =(int*)malloc(sizeof(int)*n); for(i=0; i<n; i++){ scanf("%d",arr+i); } min = arr[1] - arr[0]; for(i=2; i<n; i++){ if(arr[i] - arr[i-1] < min){ min = arr[i] - arr[i-1]; } } printf("%d",min); return 0; } | cs |
레고블럭
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 | #include <stdio.h> #include <stdlib.h> int main(){ int n, *arr, max, i, cnt=1; scanf("%d",&n); arr = (int*)malloc(sizeof(int)*n); for(i=0; i<n; i++){ scanf("%d", arr+i); } max = arr[0]; //max는 앞에 보이는 블럭의 높이 for(i=1; i<n; i++){ //블럭을 좌>우로 순회 (왼쪽이 앞) if(arr[i] > max){ //앞에 보이는 블럭보다 뒤에 블럭이 더 크면 max = arr[i]; //max를 바꿔줌 cnt++; //보이는 블록수 +1 } } printf("%d " ,cnt); //왼쪽에서 봤을 때 블록 수 cnt = 1; max = arr[n-1]; for(i=n-2; i>=0; i--){ //블럭을 우>좌로 순회(오른쪽이 앞) if(arr[i] > max){ max = arr[i]; cnt++; } } printf("%d", cnt); return 0; } | cs |
'동아리' 카테고리의 다른 글
stdin , stdout , stderr 함수 (0) | 2017.12.03 |
---|