암스트롱수

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

+ Recent posts