본문 바로가기
프로그래밍/CodeUp

CodeUp[Q_2745] : 우물 탈출!

by 조원일 2020. 4. 22.
728x90

1. 문제

https://codeup.kr/problem.php?id=2745

 

우물 탈출!

 변수 $a$, $b$, $c$가 공백을 기준으로 입력된다.($0<c<b<a<=2,147,483,647$)< p=""> </c<b<a<=2,147,483,647$)<>

codeup.kr

[출처 : 코드업(https://codeup.kr/)]

이번에는 높이 a의 우물 바닥에서 낮에는 b만큼 올라가고 밤에는 c만큼 내려올때

며칠 만에 탈출 할 수 있는지 해결하는 문제입니다.

a의 값이 21억이 넘기 때문에 for문을 이용하여 풀면 시간초과가 나기 때문에 다른 방법으로 해결해야 합니다.

낮에 탈출할수 없는 높이(a - b)만큼은 일일이 구할 필요없이 몫과 나머지 공식으로 구할수 있습니다.

 

 

2. 풀이방법

STEP 1. (a-b)높이까지는 나눗셈 한번으로 계산

 

 

3. 해답

#include <stdio.h>

int main() {
	int a, b, c;
	int count = 0;

	scanf("%d %d %d", &a, &b, &c);

	// (a-b)높이만큼 올라가는데 걸리는 일수
	count = (a - b) / (b - c); 

	// (a-b)높에이 있을경우 낮에 b만큼 올라가지만
	// a보다 크지 않아 탈출x
	if ((a - b) % (b - c) != 0) count++;

	count++;

	printf("%d\n", count);
	return 0;
}

 

해당 코드는 제가 직접 작성한 코드이며 참고용으로만 사용하세요.