반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[수학] 백준 - 달팽이는 올라가고 싶다 본문
728x90
반응형
https://www.acmicpc.net/problem/2869
-문제해설
처음에 반복문으로 풀었는데 숫자가 커질 경우 시간초과가 나왔다...
그래서 수학적인 코드로 바꿨는데도 25퍼정도 지나가면 시간초과가 나왔다. 원래 BufferedWriter쓰는게 더 빠른 줄 알았는데 입력받을 때만 BufferedReader쓰고 출력할 때는 System.out.println() 쓰니깐 시간초과가 안나왔다
여태까지 출력은 맨날 BufferedWriter썼는데 앞으로 쓰지 말아야겠다 ㅎㅎ
수학식을 생각하기 위해 여러가지 테스트케이스를 확인해보았다. 문제에서 주어진 예제말고도
100 50 200 >> 정답 3
7 5 19 >> 정답 7
3 2 6 >> 정답 4
등을 하면서 규칙을 찾아내려고 애썼다.
찾아낸 규칙은 다음과 같다.
(v-b)%(a-b) == 0 이면 (v-b) / (a-b) 출력
그렇지 않으면 (v-b)%(a-b) + 1을 출력하면 된다.
-자바
package math;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BJ2869 {
private static int a, b, v;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer( br.readLine() );
a = Integer.parseInt( st.nextToken() );
b = Integer.parseInt( st.nextToken() );
v = Integer.parseInt( st.nextToken() );
int result = (v-b) / (a-b);
if( (v-b)%(a-b) != 0 ) System.out.println( ++result );
else System.out.println( result );
}
}
-파이썬
a, b, v = map(int, input().split())
res = (v-b)//(a-b)
if (v-b)%(a-b) != 0: res += 1
print( res )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[정렬] 백준 - 단어 정렬 (0) | 2021.07.25 |
---|---|
[수학] 백준 - 이항 계수 1 (0) | 2021.07.24 |
[문자열] 백준 - 팰린드롬수 (0) | 2021.07.24 |
[해쉬] 백준 - Hashing (0) | 2021.07.24 |
[브루트포스] 백준 - 블랙잭 (0) | 2021.07.23 |
Comments