본문 바로가기
프로그램/C언어 1000제

C언어 189제] 2010/2011 COCI 크로아티아 정보학 공개 경쟁 #2 1번 달팽이는 올라가고 싶다.

by 건티 2024. 11. 25.
728x90

출처 : 반크_세계유산 경복궁

 

문제]

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

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

출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.

예제 입력 1 
2 1 5
예제 출력 1 
4


예제 입력 2 
5 1 6
예제 출력 2 
2


예제 입력 3 
100 99 1000000000
예제 출력 3 
999999901

출처 : 백준_2869번

 

참고풀이1]

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    //세수를 입력받는다.
    int A, B, V;
    scanf("%d%d%d", &A, &B, &V);
    if ((A >= 1 && A <= 1000000000) &&
        (B >= 1 && B < A) && (V >= 1 && V <= 1000000000))
        if (V < A)
            printf("1");
        else
            if ((V - A) % (A - B) == 0)
                printf("%d", (V - A) / (A - B) + 1);
            else
                printf("%d", (V - A) / (A - B) + 2);

    return 0;
}

 

참고풀이1 결과]

 

참고풀이2]

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
   //세 정수를 입력받는다.
   int A, B, V;
   scanf("%d%d%d", &A, &B, &V);
   if ((A >= 1 && A <= 1000000000) && 
      (B >= 1 && B < A) && (V >= 1 && V <= 1000000000))
      if (V < A)
         printf("1");
      else
         printf("%d", ((V - B) % (A - B) == 0) 
                            ? (V - A) / (A - B) + 1 : (V - A) / (A - B) + 2);
   return 0;
}

 

참고풀이2 결과]

 

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 여름

 

반응형

댓글