SMALL
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
- 문제
- 문제풀이
처음에는 while로 접근하려고 했으나 시간초과를 보고 당황했지만 식을 만들어 풀면 해결이 된다.
#include<stdio.h>
int main() {
int A;
int B;
int V;
int count=0;
scanf("%d %d %d",&A,&B,&V);
while(V>0){
V-=A;
if(V==0){
count++;
break;
}
V+=B;
count++;
}
printf("%d",count);
}
위의 코드는 시간 초과가 걸리니 (V-B-1)/(A-B)+1이라는 식을 만들어 풀게된다.
- 코드 1
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <iostream>
int main() {
int A;
int B;
int V;
int count = 0;
scanf("%d %d %d", &A, &B, &V);
int real = (V - B - 1) / (A - B) + 1;
printf("%d", real);
}
- 후기
처음에 굉장히 쉽다고 생각했지만 실패하고 수학적으로 풀어야함을 알게 되었다.
LIST
'백준 > C언어' 카테고리의 다른 글
[C언어]백준 17827번: 달팽이 리스트 (0) | 2023.01.28 |
---|---|
[C언어]백준 23253번: 자료구조는 정말 최고야 (0) | 2023.01.28 |
[C언어]백준 2563: 색종이 (0) | 2023.01.28 |
[C언어]백준 2566번: 최댓값 (0) | 2023.01.28 |
[C언어]백준 2292번: 벌집 (0) | 2023.01.13 |