스키마에듀 0701 수업

2023. 6. 30. 00:14스키마에듀 c언어 수업

728x90

https://www.acmicpc.net/problem/2869

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net

 

#include <stdio.h>

int main(void) {
    int a, b, v;
    int result = 0;
    scanf("%d %d %d", &a, &b, &v);

    result = (v-b-1)/(a-b)+1;
    printf("%d", result);
  return 0;
}

사실상 V에 도달하려면 A-B만큼 올라간 횟수를 더해주면 된다.
하지만 정상에 도달하면 더이상 미끄러지지 않는다는것을 명심해야한다.

그래서 총 올라가야하는것은 V-B이지만 만약 (V-B)/(A-B)로 나누어지지 않는다면 (V-B)/(A-B)를 한것보다 +1을 해주면 정답이 된다.

하지만, 그냥 (V-B)/(A-B)+1을 했는데 안나눠지는 경우도 있으니 (V-B -1)/(A-B) +1 을 해주면 정확한 값이 나오게된다.

 

https://www.acmicpc.net/problem/27465

 

27465번: 소수가 아닌 수

이 대회의 운영진 중 한 명인 KSA 학생은 $17$시와 $19$시를 구별할 수 없다. 이는 당연하게도 $17$과 $19$가 모두 소수이기 때문일 것이다. 시간을 제대로 구별해서 KSA의 명예를 지키기 위해 정수 $N$

www.acmicpc.net

 

#include <stdio.h>

int main(void) {
   long long int n;
    scanf("%lld", &n);

    printf("%lld", 1000000000);

  return 0;
}

 

 

// 선형 검색
#include <stdio.h>
#include <stdlib.h>

//요소의 개수가 n인 배열 a에서 key와 일치하는 요소를 선형 검색
int search(const int a[], int n, int key){
    int i = 0;

    while(1){
        if(i == n){ //배열을 끝까지 봤는데도 검색하려는 값이 없음.
            return -1; //검색 실패
        }

        if( a[i] == key){
            return i; //검색 성공
        }

        i++;
    }
}


int main(void) {

    int nx, ky;
    puts("선형 검색");
    printf("요소 개수: ");
    scanf("%d", &nx);

    int *x = calloc(nx, sizeof(int)); //요소개수가 nx인 int형 배열 x를 생성

    for(int i=0; i< nx; i++){
        printf("x[%d]", i);
        scanf("%d", &x[i]); //배열 요소 입력
    }
    
    printf("검색값: ");
    scanf("%d", &ky);  //검색값 입력

    int idx = search(x, nx, ky);

    if(idx == -1){
        puts("검색에 실패했습니다.");
    }else{
        printf("%d(은)는 x[%d]에 있습니다.\n", ky, idx);
    }

    free(x); //배열 x를 해제

    return 0;
}

'스키마에듀 c언어 수업' 카테고리의 다른 글

0708 스키마에듀 수업  (0) 2023.07.07
스키마에듀 수업 0708 백준  (1) 2023.07.07
스키마에듀 백준 0623  (1) 2023.06.23
스키마에듀 백준 4문제  (0) 2023.06.16
스키마에듀 0610 수업  (1) 2023.06.09