처음 짜서 제출한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
int d = 0;
for(int i = 1; a+b*i >= c*i; i++) {
d = i;
}
if(d == 1073741822) {
System.out.println(-1);
}else {
System.out.println(d+1);
}
}
}
그야말로,,,,,, 예제들에 이렇게저렇게 끼워맞춘 결과라고 할 수 있다. 굉장히 부끄러운... 그런 결과이다... 내 입으로 설명하기도 쪽팔리지만 중간의 d == 107374... 어쩌고는 예제의 3 2 1 (손익분기점이 없는 경우) 을 넣으면 출력이 저렇게(정확히는 1을 더해서) 나왔는데 아마도 int형의 크기때문에 저렇게 출력되었다고 생각한다. 그래서 순간 뇌빼고 저 숫자가 나올 때 -1을 출력하게 만들었다^^
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
if(c <= b) {
System.out.println(-1);
}else {
System.out.println((a/(c-b))+1);
}
}
}
보면서 굉장히 많은 후회를 했다. 사실 이정도 수학을 못하는 것도 아니고 단순히 생각의 갈래가 저리로 가지 못했다는게 어이없고 그렇다. 너무 문제를 곧이곧대로 쑤셔박으려고 한 것 같아서 내가 멍청해보이고 그렇다.. 좀 더 다양하게 사고할 수 있게끔 뇌를 굴려보겠다.